# Random Numbers

I would like to create random numbers that do not repeat. I have tried using an array like the following:

Dim Used(52) as Integer

Randomize()

redo:
b = (Int(52 * Rnd()) + 1)

If Used(b) = b Then
GoTo redo
Else
Used2(b) = b
End If

This portion of code does not seem to work.

Is there an easier way to create random numbers that do not repeat?
###### Who is Participating?

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Commented:
Dim MyNums(52) as integer

Private Function DoRandomNumber as integer
Randomize()

redo:
b = (Int(52 * Rnd()) + 1)
for i = 0 to 52
if MyNums(i)=b then goto redo
next i
DoRandomNumber=b
end function

Private sub Command1_click()
MyNums(Pos)=DoRandomNumber
end sub

---------------------------------
There Are 10 Kind OF People
Those Who Understands Binary AND Those Who Don't
0

Experts Exchange Solution brought to you by

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Commented:
Dear joey7643,
Try the following code. This code would give the exact idea about unique random number generating.

Option Explicit

Private m_colUnUsedNumber As Collection

Private Sub Command1_Click()

Dim i As Integer
Dim j As Integer
Dim strExtract As String
Set m_colUnUsedNumber = New Collection

For i = 0 To 52
Next i

Label1.Caption = ""
Do Until m_colUnUsedNumber.Count = 0
j = (Int(m_colUnUsedNumber.Count * Rnd()) + 1)
strExtract = m_colUnUsedNumber.Item(j)
Label1.Caption = Label1.Caption & strExtract & " "
m_colUnUsedNumber.Remove (j)
Loop

End Sub

I am strongly sure that this code would give you the exact answer.
Meng
0
###### It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Visual Basic Classic

From novice to tech pro — start learning today.