可能重复:
Why does it appear that my random number generator isn't random in C#?
亲爱的朋友们
我想在1 - 55之间生成4个随机数,但问题是大多数时候我收到2个相同的数字:(例如生成的数字是2 2 5 9或11 11 22 22! 我不知道为什么? 我用:
Random random = new Random();
return random.Next(min, max);
用于生成我的随机数。我把它们放入了一段时间,重复4次。有什么想法吗?你能帮帮我吗?
答案 0 :(得分:4)
您应该只创建一个Random()对象并重复使用它,而不是为您生成的每个随机数创建一个新对象。
原因是每次创建一个新的Random对象时,它都会从当前时间开始播种。如果您在短时间内创建多个Random对象,那么它们将在相同的时间播种,因此它们将生成相同的数字。
答案 1 :(得分:0)
如果在未指定种子的情况下创建new Random()
,则会使用当前系统时间对其进行播种。
我不记得我的头脑中使用的精度(滴答?毫秒?)但是如果你创建新的Random
对象并快速连续使用它们,它们很容易就会有相同的种子和因此返回相同的结果。
创建一个new Random()
,并重复调用.Next(min, max)
。