Random number problem

T

tshad

I am trying to create some random numbers to create an ID and am having
problems with getting the same number over and over.

I have a function:

Function RandomNumber(min as Integer, max as Integer) as integer
Dim random as Random = new Random()
RandomNumber = random.Next(min, max)
End Function

If I call this 3 times:

id = RandomNumber(0, 10))
id = RandomNumber(0, 10))
id = RandomNumber(0, 10))

I will get the same number each time.

I assume this is because it is based on the clock and uses the same seed if
call one after another. Is there a good way around this?

Thanks,

Tom
 
G

Guest

I am trying to create some random numbers to create an ID and am having
problems with getting the same number over and over.

Function RandomNumber(min as Integer, max as Integer) as integer
Dim random as Random = new Random()
RandomNumber = random.Next(min, max)
End Function

Replace Dim with Static:
Static random As New Random
What you want to do is call random.Next on the same object over and over
again. You don't want to make a new instance at every call.
 
T

tshad

AMercer said:
Replace Dim with Static:
Static random As New Random
What you want to do is call random.Next on the same object over and over
again. You don't want to make a new instance at every call.

That was what I needed.

Thanks,

Tom
 
J

Jim Wooley

I am trying to create some random numbers to create an ID and am
having problems with getting the same number over and over.

I assume this is because it is based on the clock and uses the same
seed if call one after another. Is there a good way around this?

In 2005, you may want to look into the Cryptography namespace, specifically
System.Security.Cryptography.RandomNumberGenerator. It is more reliable in
terms of creating true random results.

Jim Wooley
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top