'************************************** ' Name: A Non-Repeating Random Number Ge ' nerator ' Description: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 seri ' es of a million...It doesn't matter. Can ' be useful for image fades, deck shufflin ' g, random tip of the day, etc. - It even ' tells you how long it took to generate t ' he series. ' By: Kevin Lawrence (from psc cd) ' ' ' Inputs:None ' ' Returns:A popup message stating how ma ' ny numbers had been mixed up and how lon ' g it took. ' 'Assumes:None ' 'Side Effects:The larger the series of n ' umbers the more RAM required. Uses array ' s. '************************************** 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