给你个更好的
[C#] 纯文本查看 复制代码 /// <summary>
/// 取随机数 - 拟真随机
/// </summary>
/// <param name="min"></param>
/// <param name="max"></param>
/// <returns></returns>
public static int GetRandom(int min, int max)
{
// 使用GUID的一部分作为主种子
Guid mainSeed = Guid.NewGuid();
byte[] bytes = mainSeed.ToByteArray();
int mainSeedInt = BitConverter.ToInt32(bytes, 0);
Random random = new Random(mainSeedInt);
// 生成范围在 min 到 max 之间的第一个随机数
int random1 = random.Next(min, max + 1);
// 使用第一个随机数计算第二种子
int newSeed = random1 + random.Next(11111,99999)%3 + (int)random.Next(33333,99999)/random.Next(333,999);
random = new Random(newSeed);
// 生成范围在 min 到 max 之间的第二个随机数
int random2 = random.Next(min, max + 1);
// 将两个随机数结合,使用位或运算
int combinedRandom = random1 | random2;
// 如果结合后的值大于 max,则对其进行限制
combinedRandom = combinedRandom <= max ? combinedRandom : combinedRandom % (max - min + 1) + min;
return combinedRandom;
} |