Настоящая случайность в браузере
Генератор использует функцию crypto.getRandomValues — криптографически стойкий источник случайности, встроенный в браузер. Он получает энтропию от операционной системы, которая собирает её из физических источников: таймингов прерываний, движений мыши, шума оборудования.
Обычная функция Math.random для честного жребия не годится: её последовательность вычисляется по алгоритму, и зная несколько значений, можно предсказать следующие. Для розыгрыша призов или деления на команды это принципиально.
Где применяется
- Розыгрыши — выбор победителя среди участников конкурса
- Деление на группы — команды, пары, очерёдность выступлений
- Тестирование — случайные данные для проверки программ
- Принятие решений — когда варианты равнозначны и жалко тратить время на выбор
- Игры — замена кубика или монеты под рукой
- Выборка — случайные записи из набора для проверки
Как провести честный розыгрыш
- Зафиксируйте список заранее. Опубликуйте участников до генерации, чтобы никто не сомневался в составе
- Снимите процесс на видео. Запись экрана снимает большинство вопросов
- Объявите правила до начала. Сколько победителей, что делать при отказе, как связываются с выигравшим
- Не перегенерируйте результат. Повторный запуск «потому что не понравилось» уничтожает доверие
- Сохраните историю. Инструмент показывает предыдущие результаты — их можно приложить как доказательство
О «полосах везения»
Пять орлов подряд не делают решку более вероятной в шестой раз — вероятность остаётся ровно один к двум. Это заблуждение известно как ошибка игрока, и на нём построена индустрия азартных игр.
Случайная последовательность выглядит менее «случайной», чем ожидают люди: в ней регулярно встречаются повторы и серии. Настоящая случайность неравномерна, и попытка её «выровнять» как раз делает результат предсказуемым.