Генератор случайных чисел
Случайное число от 1 до 100 — одно нажатие, 5 чисел от 1 до 36 без повторов — вторая настройка. Генератор берёт значения из crypto.getRandomValues, а с seed результат можно повторить и проверить.
Инструмент
Как работает генератор случайных чисел
Инструмент берёт 32-битное случайное число из crypto.getRandomValues и приводит его к диапазону от «от» до «до» включительно. Простое деление с остатком дало бы перекос в пользу меньших значений, поэтому используется метод отбрасывания: значения из «хвоста», который не делится нацело на размер диапазона, пропускаются, и каждое из чисел выпадает с одинаковой вероятностью. Отрицательные границы и ноль допустимы: диапазон от −5 до 5 содержит 11 вариантов.
n = max − min + 1 — вариантов в диапазоне
x = min + (r mod n) — r — случайное 32-битное число, r < ⌊2³² ÷ n⌋ × n
дробные: x = ⌈min × 10^k⌉ … ⌊max × 10^k⌋, результат ÷ 10^k
Пример вручную: диапазон от 1 до 100, значит n = 100. Пусть генератор выдал r = 2 147 483 683. Остаток от деления на 100 равен 83, прибавляем нижнюю границу 1 и получаем 84. Для дробного диапазона от 0,5 до 2,5 с двумя знаками границы умножаются на 100: целые от 50 до 250, всего 201 вариант; выпавшее 103 делится обратно на 100 и даёт 1,03.
Что такое случайное число
Случайное число — это значение, выбранное из заданного диапазона так, что каждый вариант равновероятен и не зависит от предыдущих. Генератор в браузере использует криптографический источник crypto.getRandomValues, поэтому результат подходит для розыгрышей и жеребьёвок.
Четыре режима: число, монетка, кубик, жребий
| Режим | Что делает | Результат |
|---|---|---|
| Число от–до | 1–1 000 чисел из диапазона, без повторов, с дробной частью | число или список, сумма и среднее |
| Монетка | 1–100 бросков | орёл или решка, счёт по сторонам |
| Кубик | 1–20 костей d4, d6, d8, d10, d12, d20, d100 | сумма, отдельные броски, формула |
| Жребий | список имён по одному в строке, выбор 1–N участников | победитель или нумерованный список |
Режим «Без повторов» перемешивает диапазон алгоритмом Фишера — Йетса и берёт первые N чисел — так формируют лотерейные комбинации вроде «5 из 36» или «6 из 45» и порядок выступлений на конкурсе. В жребии список перемешивается тем же способом, поэтому шанс каждого участника равен доле выбираемых мест: при 4 именах и одном победителе — 25 %.
Seed: воспроизводимый результат
Seed — целое число, которое запускает детерминированный генератор mulberry32 вместо криптографического. С одинаковым seed и настройками результат всегда одинаков: розыгрыш можно повторить на любом устройстве и убедиться, что победитель выбран честно. Удобная практика — объявить seed заранее, например дату и время розыгрыша в виде 202609191200, чтобы организатор не мог перебирать значения в поисках нужного исхода. Поле пустое — результат случайный и неповторимый.
Где нужны случайные числа
- Розыгрыши призов в ВКонтакте, Telegram и Instagram: победитель — номер комментария или строка из списка участников.
- Учёба: выбор варианта контрольной, отвечающего у доски, темы реферата; распределение по группам без обид.
- Настольные и ролевые игры: замена потерянного кубика, броски d20 в D&D, розыгрыш первого хода монеткой.
- Тестирование и статистика: контрольная выборка из 1 000 строк, случайные тестовые данные, номера для проверки.
- Быт: кто моет посуду, порядок подарков на Новый год, номер квартиры для дежурства по подъезду.
Пример расчёта
- Исходные данные: Режим — Число от–до; От — 1; До — 100; Сколько чисел — 1; Знаков после запятой — 0; Без повторов — нет.
- Результат: Случайное число от 1 до 100 — 96 (Диапазон — от 1 до 100; Вариантов в диапазоне — 100; Источник — случайный (crypto)).
Вопросы и ответы
Насколько случайны числа генератора?
Без seed числа берутся из crypto.getRandomValues — криптографического генератора браузера, который создаёт и ключи шифрования. Значение приводится к диапазону без смещения: «хвост» 32-битного числа, не делящийся нацело на размер диапазона, отбрасывается, и каждый вариант выпадает равновероятно.
Как выбрать несколько чисел без повторов?
Включите «Без повторов» и укажите количество: генератор перемешает диапазон по алгоритму Фишера — Йетса и возьмёт первые N значений. Чисел не может быть больше, чем вариантов в диапазоне: из отрезка от 1 до 10 без повторов можно взять максимум 10 чисел, иначе инструмент сообщит об ошибке.
Как провести честный розыгрыш в соцсетях?
Пронумеруйте участников по порядку комментариев, объявите seed заранее — например, дату розыгрыша в виде 20260919 — и выберите число от 1 до N с этим seed. Любой участник повторит генерацию с теми же параметрами и получит того же победителя, так что обвинить организатора в подтасовке не получится.
Можно ли получить дробное случайное число?
Да: укажите число знаков после запятой от 1 до 6. При диапазоне от 0,5 до 2,5 и двух знаках инструмент выбирает одно из 201 значения с шагом 0,01 — от 0,50 до 2,50 включительно — и выводит его с запятой, как принято в русской записи.
Чем режим «кубик» отличается от чисел от 1 до 6?
Кубик бросает сразу несколько костей и показывает сумму, отдельные броски и формулу: 2d6 — это два броска от 1 до 6 с суммой от 2 до 12, а не одно число от 2 до 12. Распределение суммы не равномерное — 7 выпадает в 6 раз чаще, чем 2, — именно так работают настольные игры и D&D.
Обновлено: