Выбрать рандомное число
Как выбрать рандомное число онлайн
Приземлите победителя розыгрыша, определите порядок выступлений или выберите значение для настольной игры. Чтобы выбрать рандомное число в заданных границах, проще всего использовать калькулятор ниже. Укажите минимум и максимум, выберите тип результата – целый или дробный, – и получите значение.
Если нужен ручной расчёт или вы встраиваете логику в сайт, ниже разобраны универсальные формулы и принципы работы генераторов.
Как работает генерация случайных чисел
Любой веб-генератор работает на базе псевдослучайного алгоритма (PRNG). Он берёт стартовое значение – сид (seed) – и по математической формуле выдаёт последовательность, которая выглядит непредсказуемой. При том же сиде результат можно повторить.
В JavaScript, который лежит в основе большинства браузерных рандомайзеров, метод Math.random() возвращает число с плавающей точкой от 0 (включительно) до 1 (не включительно). Диапазон записывается как 0 ≤ x < 1. Значение 0 может выпасть, хотя и крайне редко, а вот 1 – никогда.
Формула для целого числа в заданном диапазоне
Чтобы получить случайное целое от min до max включительно, используют конструкцию:
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
Что происходит по шагам:
Math.random()даёт число от 0 до 0,999…- Умножение на
(max - min + 1)растягивает диапазон на нужную длину.+1гарантирует, что верхняя граница тоже может выпасть. Math.floor()округляет вниз до целого.+ minсдвигает результат от нуля к нужному минимуму.
Пример: getRandomInt(1, 10) вернёт значение от 1 до 10. Без +1 в формуле максимальное число никогда не выпало бы.
Как получить дробное случайное число
Для чисел с плавающей точкой без округления применяют базовую формулу:
function getRandomFloat(min, max) {
return Math.random() * (max - min) + min;
}
Если нужно зафиксировать количество знаков после запятой, сгенерируйте значение, округлите его через .toFixed(decimals), а затем преобразуйте обратно в число. Метод .toFixed() возвращает строку, поэтому важно использовать parseFloat() или аналогичное преобразование.
Почему Math.random() всегда возвращает число меньше 1?
Верхняя граница исключена по стандарту ECMAScript. Если бы Math.random() мог выдать ровно 1, то при расчёте индекса массива из 10 элементов – Math.floor(Math.random() * 10) – результат иногда был бы 10. Это выходит за пределы массива и вызывает ошибку. Исключение единицы предотвращает такой сценарий при любом округлении.
Где применяют случайные числа
Розыгрыши и лотереи – генерация победного номера из заданного пула участников. Настольные игры – имитация броска кубика (1–6) или нескольких костей. Случайный выбор – определение порядка выступлений, деления на команды, жеребьёвка. В разработке – создание случайных цветов, временных ID, перемешивание плейлистов и нагрузочное тестирование.
Можно ли получить настоящую случайность?
Браузерные генераторы выдают псевдослучайную последовательность: при известном сиде её можно воспроизвести. Для криптографически стойкой случайности – например, при генерации паролей или токенов – используют window.crypto.getRandomValues() в JavaScript или аппаратные генераторы на основе физического шума.