我在谷歌上搜索 RNGCryptoServiceProvider 并提供有关如何限制 Max 和 Min 之间范围的示例,并且仍然获得均匀分布。在我使用模运算符之前,但有时它会得到奇怪的值(高于最大值)......无论如何,每次调用该方法时,这段代码(归功于未知)随机使用来自 RNGCCryptoServiceProvider 的新种子。你们有什么感想?
public static int GetRandom(int min, int max)
{
byte[] b = new byte[sizeof(int)];
new System.Security.Cryptography.RNGCryptoServiceProvider().GetBytes(b);
int i = BitConverter.ToInt32(b, 0);
Random r = new Random(i);
return r.Next(min, max);
}