
这太棒了;几年前我就应该用这个方法。我把它发布在这里以备后用。注意我没有使用random类。random类并不是真正的随机。它是基于时间的。时间是可预测的。
RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
byte[] result = new byte[8];
rng.GetBytes(result);
double rand = (double)BitConverter.ToUInt64(result, 0) / ulong.MaxValue;
//40 percent chance of being selected.
if (rand > 0.40d )
{
...
}
作者:Chuck Conway 专注于软件工程和生成式人工智能。在社交媒体上与他联系:X (@chuckconway) 或访问他的 YouTube。