Генератор случайных чисел

До 1000 чисел за раз, любой диапазон, режим без повторов и сортировка. Тот же криптографический источник случайности, что и у паролей.

—

Где пригодится

Зачем нужны случайные числа

Розыгрыши и конкурсы. Участники пронумерованы — комментарии под постом, заявки в таблице, номера билетов. Задаёте диапазон, получаете победителя. Если результат нужно показать посторонним, есть розыгрыш по номерам с постоянной ссылкой.

Жеребьёвка и очередь. Кто выступает первым, кому какой вариант задания, в каком порядке идут доклады. Режим без повторов выдаёт перестановку, а не набор с дублями.

Лотерейные комбинации. Готовые кнопки на 4 из 20, 5 из 36, 6 из 45 и 7 из 49 — это те же числа без повторов, отсортированные по возрастанию.

Тесты и учёба. Выборка строк из таблицы для ручной проверки, случайные примеры для задачника, подбрасывание монетки и кубика без монетки и кубика.

Про случайность

Почему не Math.random()

Встроенный Math.random() оптимизирован под скорость, а не под непредсказуемость: его состояние можно восстановить по нескольким значениям. Для розыгрыша, где на кону приз, этого достаточно, чтобы результат перестал быть честным.

Мы берём числа из crypto.getRandomValues и приводим их к диапазону отбраковкой: если значение попало в «хвост», который не делится на размер диапазона нацело, оно отбрасывается и берётся следующее. Без этого шага младшие числа выпадали бы чаще.

Частые случаи

Вопросы

Частые вопросы

Насколько случайны эти числа?

Источник — системный криптографический генератор операционной системы через crypto.getRandomValues, а приведение к диапазону сделано методом отбраковки, поэтому все числа равновероятны. Обычный Math.random() для розыгрышей не годится.

Можно ли использовать для розыгрыша призов?

Да, но результат нигде не сохраняется — страница ничего не пишет на сервер. Для конкурсов, где нужна доказуемость, снимите экран на видео или используйте сервис с постоянной ссылкой на результат.

Дальше

Другие инструменты

Скопировано