Random() problem

  • Thread starter Thread starter steven shingler
  • Start date Start date
S

steven shingler

why on earth does:

for(int i =0;i<5;i++)
{
Response.Write(new Random().Next(0,1000).ToString() + "<br>");
}

give me: (for example)
400
400
400
400
400

??

(I was sort of expecting a different number each time)
any ideas very gratefully received - apologies if I'm being thick.
 
why on earth does:

for(int i =0;i<5;i++)
{
Response.Write(new Random().Next(0,1000).ToString() + "<br>");
}

give me: (for example)
400
400
400
400
400

??

(I was sort of expecting a different number each time)
any ideas very gratefully received - apologies if I'm being thick.

Because you create a Random() by giving it a seed.
It isn't completely random so when you give it the same seed it will
produce the same series of numbers.
So... create a Random only once. I usually choose a seed number based on
current time, since you have no way of knowing what this number will be.

Random rand = new Random((int)DateTime.Now.Ticks);
for(int i =0;i<5;i++)
{
Response.Write(rand.Next(0,1000).ToString() + "<br>");
}
 
Back
Top