Random.Range(0, 2) не возвращает значение 2, что делать?

В C# функция Random.Range(minValue, maxValue) генерирует случайное целое число в диапазоне от minValue до maxValue-1. Это означает, что она исключает верхнюю границу maxValue.

Если вам нужно, чтобы Random.Range(0, 2) вернул значение 2, вы можете вместо этого использовать Random.Next(minValue, maxValue), где minValue и maxValue будут равны соответственно 0 и 3.

Random random = new Random();
int result = random.Next(0, 3); // Вернет значения 0, 1 или 2

Теперь result может быть равным 0, 1 или 2.

Также следует учесть, что для генерации случайных чисел в C# рекомендуется создавать только один экземпляр класса Random, чтобы избежать возможных проблем с генерацией случайных чисел. Это связано с особенностями реализации класса Random, который использует текущее время в качестве зерна для генерации псевдослучайных чисел. Если вы создадите несколько экземпляров класса Random в течение короткого промежутка времени, они могут получить одинаковое начальное зерно и, следовательно, генерировать одинаковую последовательность псевдослучайных чисел.