首先以下代码执行:
for (int i = 0; i < 32; i++)
{
Random rd = new Random();
Console.Write(rd.Next().ToString());
}
执行结果是都是想同的值,

但是这样执行的话得到的就是不重复的:
Random rd = new Random();
for (int i = 0; i < 32; i++)
{
Console.Write(rd.Next().ToString());
}
想知道这是什么机制?
Console.Write(rd.Next().ToString())里面加个换行符吧“\n”,方便看。你的第一个for循环输出的结果不是重
复的,你再试试。
Random rd = new Random()时无参数即为使用系统时钟为种子,
第一个循环无延时,在高并发的情况下,Random类所取到的系统时钟种子接近甚至完全一样,就很有可能出现重复
生成10个0~99不重复的随机数
int[] nums = Enumerable.Range(0, 100).OrderBy(x => Guid.NewGuid().ToString()).Take(10).ToArray();