Random-c#

C# — Генерация случайного числа

Задача: Нужно сгенерировать случайное число

Инструменты: C#

Решение: Для генерации случайных чисел воспользуемся классом Random или RNGCryptoServiceProvider 

Если Вам подходит генерация псевдо-случайных чисел, можно воспользоваться классом Random. При создании более одного случайного числа все же предпочтительно создать один раз экземпляр класса Random, и потом генерировать новые значения с помощью метода random.Next(). Потому что если между созданиями экземпляров класса будет небольшой промежуток времени у Вас будут повторяющиеся случайные чисел.

Рассмотрим несколько примеров:

Random rnd = new Random();
int randomNumber1 = random.Next();
int randomNumber2 = rnd.Next(1, 6);  // генерация случайного чисела от 1 до 5
int randomNumber3 = rnd.Next(91);    // генерация случайного чисела от 0 до 90Code language: JavaScript (javascript)

Для генерации «безопасных» случайных чисел нам нужно использовать класс RNGCryptoServiceProvider

Рассмотрим пример использования.

using System.Security.Cryptography;
...
using (var generatorProvider = new RNGCryptoServiceProvider())
{
    var data = new byte[4]; // 4 для int32
    generatorProvider.GetBytes(data);
    var randomValue = BitConverter.ToInt32(data, 0);
}Code language: JavaScript (javascript)

PS: Если вы хотите сгенерировать случайное значение в Unity, Вам нужно проверить чтобы использовалось правильные пространство имен, а именно System.Random, потому что в Unity есть UnityEngine.Random, в котором нет возможности генерировать случайные значения.

Добавить комментарий