Number Scambler

I decided to post this tip, as it is something I couldn't locate when I had
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



'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



RandomGenerator = TempValueHolder

End Function
This was first published in November 2000

Dig deeper on Domino Resources - Part 4



Forgot Password?

No problem! Submit your e-mail address below. We'll send you an email containing your password.

Your password has been sent to:



  • iSeries tutorials's tutorials provide in-depth information on the iSeries. Our iSeries tutorials address areas you need to know about...

  • V6R1 upgrade planning checklist

    When upgrading to V6R1, make sure your software will be supported, your programs will function and the correct PTFs have been ...

  • Connecting multiple iSeries systems through DDM

    Working with databases over multiple iSeries systems can be simple when remotely connecting logical partitions with distributed ...