Объяснение
Как работает Генератор случайных чисел
Генератор случайных чисел создаёт целые числа из свободно выбираемого диапазона. Вы решаете, могут ли числа встречаться несколько раз (розыгрыш с возвращением/без), и как сортируется вывод.
Границы внутренне упорядочиваются и сужаются до содержащихся в них целых чисел. Равные целочисленные границы всегда дают одно и то же единственное возможное значение. Отрицательные диапазоны также поддерживаются. Без повторов невозможное количество наглядно ограничивается размером диапазона.
Разделитель определяет, как числа разделяются при копировании — удобно для импорта в Excel, файлы CSV или другие программы.
Типичные ошибки
- Использовать псевдослучайность для криптографии: Math.random предсказуем и не подходит для целей безопасности. Для паролей, токенов или криптографических ключей используйте crypto.getRandomValues().
- Читать единичный вывод как тест качества: Малые последовательности не доказывают ни равномерного распределения, ни его отсутствия; этот инструмент не проводит статистического теста качества.
- Понимать дробные границы как дробный вывод: Генератор выдаёт только целые числа и округляет нижнюю границу вверх, а верхнюю — вниз.
- Ожидать воспроизводимости: Без значения seed результаты отличаются при каждом вызове. Для воспроизводимых экспериментов используйте документированный генератор с seed.
Ограничения этого инструмента
- Использует Math.random — не замена криптографически безопасной случайности в приложениях безопасности.
- Только целые значения — без чисел с плавающей точкой или нормальных распределений.
- Значение seed задать нельзя — результаты невоспроизводимы.
- Максимум 500 чисел за запуск — для больших наборов данных используйте специализированные инструменты.
Источники
- NIST SP 800-90A: Recommendation for Random Number Generation Using Deterministic Random Bit Generators (DRBG). Стандарт для криптографических генераторов случайных чисел.
- ECMAScript Specification: Math.random() — выдаёт псевдослучайные числа с приблизительно равномерным распределением в диапазоне [0, 1).