最近做项目遇到了在循环体中添加随机数,每次循环出来的几乎都是相同的数据,后发现随机数种子默认已时间为单位去做随机间隔,在循环体中程序速度说轻点的话属于毫秒级的,所以就会出现伪随机数,为了避免此种情况,使用 哈希值去替换随机数默认种子,代码如下:
/// <summary> /// 防止伪随机数 /// </summary> /// <param name="minValue"></param> /// <param name="maxValue"></param> /// <returns></returns> private int ProduceIntRandom(int minValue, int maxValue) { Random r = new Random(Guid.NewGuid().GetHashCode()); return r.Next(minValue, maxValue); }