在C#中,生成隨機數的高效方法是使用System.Random
類或者System.Security.Cryptography.RNGCryptoServiceProvider
類
System.Random
類:using System;
class Program
{
static void Main()
{
// 創建一個Random實例
Random random = new Random();
// 生成一個0到99之間的隨機整數
int randomNumber = random.Next(100);
Console.WriteLine("隨機數: " + randomNumber);
}
}
System.Security.Cryptography.RNGCryptoServiceProvider
類:using System;
using System.Security.Cryptography;
class Program
{
static void Main()
{
// 創建一個RNGCryptoServiceProvider實例
RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
// 生成一個0到99之間的隨機整數
int randomNumber = GetRandomInt(rng, 100);
Console.WriteLine("隨機數: " + randomNumber);
}
static int GetRandomInt(RNGCryptoServiceProvider rng, int maxValue)
{
if (maxValue <= 0) throw new ArgumentOutOfRangeException(nameof(maxValue));
int result;
byte[] randomBytes = new byte[4];
do
{
rng.GetBytes(randomBytes);
result = BitConverter.ToInt32(randomBytes, 0) & Int32.MaxValue;
} while (result >= maxValue * (Int32.MaxValue / maxValue));
return result % maxValue;
}
}
注意:RNGCryptoServiceProvider
類生成的隨機數比System.Random
類更加安全,但可能會稍微慢一些。如果你需要生成大量的隨機數,可以考慮使用RNGCryptoServiceProvider
類。