# A Non-Repeating Random Number Generator

With this simple, and very fast, routine you can generate a series of non-repeating random numbers. You can select a series of 10 numbers, or a series of a million...It doesn't matter. Can be useful for image fades, deck shuffling, random tip of the day, etc. - It even tells you how long it took to generate the series.

Original Author: Kevin Lawrence

### Returns

A popup message stating how many numbers had been mixed up and how long it took.

### Side Effects

The larger the series of numbers the more RAM required. Uses arrays.

### Code

`Private Sub Command1_Click()  '-------------------------------------------------------------  ' Produces a series of X random numbers without repeating any  '-------------------------------------------------------------    'Results can be used by using array B(X)    Dim A(10000) ' Sets the maximum number to pick  Dim B(10000) ' Will be the list of new numbers (same as DIM above)  Dim Message, Message_Style, Message_Title, Response    'Set the original array  MaxNumber = 10000 ' Must equal the DIM above  For seq = 0 To MaxNumber    A(seq) = seq  Next seq  'Main Loop (mix em all up)  StartTime = Timer  Randomize (Timer)  For MainLoop = MaxNumber To 0 Step -1    ChosenNumber = Int(MainLoop * Rnd)    B(MaxNumber - MainLoop) = A(ChosenNumber)    A(ChosenNumber) = A(MainLoop)  Next MainLoop    EndTime = Timer  TotalTime = EndTime - StartTime    Message = "The sequence of " + Format(MaxNumber, "#,###,###,###") + " numbers has been" + Chr\$(10)  Message = Message + "mixed up in a total of " + Format(TotalTime, "##.######") + " seconds!"  Message_Style = vbInformationOnly + vbInformation + vbDefaultButton2  Message_Title = "Sequence Generated"    Response = MsgBox(Message, Message_Style, Message_Title)End Sub`

Posted: 2002-06-01
By: ArchiveBot
Viewed: 137 times

Categories

Visual Basic 6

Attachments

No attachments for this post