Excel: Generate Unique Random Numbers

< Back to Search results

 Category: [Excel]  Demo Available 

Excel: Generate Unique Random Numbers


Got any Excel/VBA Questions? Free Excel Help

This UDF will generate x unique random numbers between any 2 numbers you specify. Many thanks to J.E. McGimpsey for modifying this to work on more than 10 numbers.

The Code

Function RandLotto(Bottom As Integer, Top As Integer, _

                    Amount As Integer) As String

    Dim iArr As Variant

    Dim i As Integer

    Dim r As Integer

    Dim temp As Integer




    ReDim iArr(Bottom To Top)

    For i = Bottom To Top

        iArr(i) = i

    Next i


    For i = Top To Bottom + 1 Step -1

        r = Int(Rnd() * (i - Bottom + 1)) + Bottom

        temp = iArr(r)

        iArr(r) = iArr(i)

        iArr(i) = temp

    Next i


    For i = Bottom To Bottom + Amount - 1

        RandLotto = RandLotto & " " & iArr(i)

    Next i


    RandLotto = Trim(RandLotto)


End Function

To use this UDF push Alt+F11 and go Insert>Module and paste in the code. Push Alt+Q and save. The Function will appear under "User Defined" in the Paste Function dialog box (Shift+F3). Use the Function in any cell as shown below. 

This would produce 8 unique random numbers between 1 and 20


See also:

Prevent Save As in Excel
Prevent Excel Being Saved With Another Name
Prevent Save Prompts in Excel
Excel VBA: Determine Number of Pages to be Printed
Protect/Lock Excel VBA Code


See also Index to Excel VBA Code and Index to Excel Freebies and Lesson 1 - Excel Fundamentals and Index to how to… providing a range of solutions.


Click here to visit our Free 24/7 Excel/VBA Help Forum where there are thousands of posts you can get information from, or you can join the Forum and post your own questions.


stars (0 Reviews)