Случайное число от 1 до 100
В колесе уже стоят все сто чисел. Нужен другой диапазон — просто отредактируйте список вариантов.
Зачем крутить число, если есть генератор
Обычный генератор выдаёт цифру мгновенно, и именно поэтому ему не верят: результат появился из ниоткуда, проверить нечего. Колесо показывает процесс. Когда вы разыгрываете номер среди коллег или выбираете участника по порядковому номеру, четыре секунды замедления делают результат общим событием, а не строчкой на экране одного человека.
Свой диапазон
Список вариантов — обычный текст, одно число в строке. Чтобы получить диапазон 1–20, удалите лишнее; чтобы 1–1000 — вставьте свой столбец из Excel (формула =ПОСЛЕДОВ(1000) или протянутая нумерация). Работают и нецелые значения, и номера с префиксом: «Билет 042» ничем не хуже числа. Пятьсот вариантов колесо держит, подписи мельчают, но результат всегда крупно выводится плашкой поверх.
Розыгрыш номеров без повторов
Для лотереи включите «Убирать выпавшее»: выпавший номер исчезает, и второй раз он выпасть не может. Так вытягивают три призовых места подряд. История последних выпадений сохраняется в отдельной панели — её можно скопировать в отчёт, а результат сохранить картинкой кнопкой «Картинка».
Если разыгрываете реальный приз, включите проверяемую честность: до кручения публикуется хеш seed и списка, после — сам seed. Любой участник пересчитает результат и убедится, что номер не подменили. Числа берутся из crypto.getRandomValues(), а не из Math.random().
Диапазоны, которые нужны чаще всего
- 1–6 — замена игральной кости, если та потерялась; отдельная страница с кубиком уже готова.
- 1–31 — день месяца: для розыгрышей «угадай дату» и планирования дежурств.
- 1–52 — номер недели или карта из колоды, если подписать масти.
- 1–1000 — номера лотерейных билетов. Вставьте столбец из Excel, колесо примет до пятисот строк.
- Номера с префиксом — «Билет 042», «Место 17». Колесо не требует, чтобы вариант был числом.
Почему равномерность здесь особенно важна
При двух вариантах перекос генератора почти незаметен. При ста он проявляется: если брать случайное число простым делением с остатком, первые номера диапазона получают крохотное преимущество — и на длинной серии розыгрышей оно становится измеримым. Здесь диапазон случайных чисел перед делением обрезается так, чтобы делился на количество вариантов нацело, а «лишние» значения отбрасываются и берутся заново. Вероятность каждого номера строго одинакова, а не приблизительно одинакова.