在 C# 中生成随机数可以使用 Random
类,它提供了生成各种类型随机数的方法。以下是一些常用的生成随机数的示例:
using System;class RandomNumberGenerator
{static void Main(){// 创建 Random 实例(建议在应用程序中只创建一个实例)Random random = new Random();// 生成 0 到 int.MaxValue 之间的随机整数(包含 0,不包含 int.MaxValue)int randomInt = random.Next();Console.WriteLine($"随机整数: {randomInt}");// 生成 0 到指定最大值之间的随机整数(包含 0,不包含最大值)int maxValue = 100;int randomIntWithMax = random.Next(maxValue);Console.WriteLine($"0 到 {maxValue} 之间的随机整数: {randomIntWithMax}");// 生成指定范围内的随机整数(包含最小值,不包含最大值)int minValue = 10;int rangeRandomInt = random.Next(minValue, maxValue);Console.WriteLine($"{minValue} 到 {maxValue} 之间的随机整数: {rangeRandomInt}");// 生成 0.0 到 1.0 之间的随机双精度浮点数double randomDouble = random.NextDouble();Console.WriteLine($"0.0 到 1.0 之间的随机双精度浮点数: {randomDouble}");// 生成指定范围内的随机双精度浮点数double minDouble = 1.5;double maxDouble = 3.5;double rangeRandomDouble = minDouble + (maxDouble - minDouble) * random.NextDouble();Console.WriteLine($"{minDouble} 到 {maxDouble} 之间的随机双精度浮点数: {rangeRandomDouble}");}
}
重要说明:
Random
类的实例化最好只进行一次,多次实例化可能会因为系统时钟种子相似而产生重复的随机数序列。- 如果需要在多线程环境中使用,应该使用
Random
的线程安全替代方案,如RandomNumberGenerator
类(需要 .NET Core 2.1+ 或 .NET 5+)。 Next()
方法生成的随机数是伪随机数,适用于大多数普通场景,但不适用于加密等安全敏感场景。
如果你需要更安全的随机数生成(如加密用途),可以使用 System.Security.Cryptography.RandomNumberGenerator
类。