I was looking thru some Excel files that a former employee left. This code was used to generate a list of non-duplicated random numbers, according to the parameters entered. I ran it a few (like 100) times, but it never seems to give me "low" results, i.e., lower = 1, upper = 10000, number = 500 and it never returns a random number less than 100. I can't seem to figure where the error is. I know that it IS possible to not generate a number below 100 on occasion, but when running it repeatedly?

Sub Unique_Numbers()
    Dim x As Long, y As Long, z As Long, tempnum As Long
    Dim flag As Boolean
    Dim i As Integer
    Dim foundCell As Range
    Application.ScreenUpdating = False
    x = Application.InputBox("Enter starting Random Number" _
        , "Random Number Generation", 1, , , , , 1)
    y = Application.InputBox("Enter ending Random Number" _
        , "Random Number Generation", 10000, , , , , 1)
    z = Application.InputBox("How many random numbers would" _
        & "you like to generate?" _
            , "random Number Generation", 500, , , , , 1)
    If z = 0 Then Exit Sub
    If z > 3500 Then z = 3500
    If z > y - x + 1 Then
        MsgBox "You specified more numbers to return than " _
            & "are possible in the range!"
        Exit Sub
    End If
    Randomize
    Cells(1, 1) = Int((y - x + 1) * Rnd + x)
    For i = 2 To z
        Do
            flag = False
            Randomize
            tempnum = Int((y - x + 1) * Rnd + x)
            Set foundCell = Range("a1", _
                Range("a1").End(xlDown).Address).Find(tempnum)
            If Not (foundCell Is Nothing) Then
                flag = True
            End If
        Loop Until Not flag
        Cells(i, 1) = tempnum
    Next

Columns("A:A").Select
    Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    
    
End Sub