need of it.
My scenario is as follows:
I needed to scramble a range of numbers(X) (from 1 to X) so that they would
display in a unique order each time the function was called.
The function expects an integer (X) to be passed to it and will return a
variant containing the randomized list from 1 to X.
' RandomOrderedList will receive the results of the function call.
Dim RandomOrderedList As Variant
RandomOrderedList = RandomGenerator ( < Any Number > )
'==================The function ================
Function RandomGenerator (X As Integer) As Variant
'Baseline will hold a sequential list of numbers from 1 to X.
Dim Baseline List As Integer
For i = 0 To X-1
Baseline(i)=i+1
Next
'Set RandomFactor vehicles
Dim RandomFactor1 As Variant
Dim RandomFactor2 As Variant
' Set Temp value holder
Count = 0
While Not ( count = X )
RandomFactor1 = Evaluate( "@random" )
RandomFactor2 = Int( 1 + RandomFactor1(0) * ( X * X ) )
If RandomFactor2 > X Then Goto NextOne
Dim TempValueHolder List As Integer
Forall X1 In TempValueHolder
If X1 = RandomFactor2 Then Goto NextOne
End Forall
TempValueHolder(Count ) =RandomFactor2
Count=Count + 1
Nextone:
Wend
RandomGenerator = TempValueHolder
End Function
This was first published in November 2000