Генератор случайных чисел
Параметры
Вывод
Технические детали
Как работает генератор случайных чисел
Что делает инструмент
Генератор случайных чисел создаёт криптографически стойкие случайные целые числа или числа с плавающей запятой, используя Web Crypto API (crypto.getRandomValues). Он применяет отбор с отклонением (rejection sampling), чтобы устранить смещение по модулю и обеспечить равномерное распределение в любом заданном диапазоне. Вы можете генерировать одиночные значения или пакеты случайных чисел с настраиваемыми параметрами минимума, максимума и точности.
Распространенные сценарии использования для разработчиков
Разработчики используют криптографические генераторы случайных чисел для задач, чувствительных к безопасности, таких как генерация непредсказуемых токенов сессий, nonce, лотерейных выборок или случайной выборки из наборов данных. Разработчики игр применяют их для бросков кубика и процедурной генерации, когда важна честность. QA-инженеры генерируют случайные тестовые входные данные для фаззинга, а дата-сайентисты используют их для случайной выборки, когда воспроизводимость не требуется.
Форматы данных, типы или варианты
Инструмент поддерживает генерацию целых чисел в произвольном диапазоне (включая границы) и генерацию чисел с плавающей запятой с настраиваемой десятичной точностью. Отбор с отклонением отбрасывает значения, которые привели бы к смещению по модулю, когда диапазон не делит пространство выходных значений источника случайности нацело. Базовая энтропия поступает из CSPRNG операционной системы (CryptGenRandom в Windows, /dev/urandom в Unix), доступного через Web Crypto API браузера.
Распространенные ошибки и крайние случаи
Криптографическая случайность медленнее, чем Math.random(), и не нужна для задач без требований безопасности, например для перемешивания плейлиста. Отбор с отклонением теоретически может много раз повторяться для патологических диапазонов, хотя на практике это пренебрежимо. Случайные числа, сгенерированные в браузере, нельзя «засеять» для воспроизводимости — если вам нужны детерминированные последовательности для тестов, используйте PRNG с seed. Максимальный безопасный диапазон целых чисел ограничен JavaScript Number.MAX_SAFE_INTEGER (2^53 - 1).
Когда использовать этот инструмент, а когда — код
Используйте этот браузерный инструмент, когда вам нужно быстро получить одно непредвзятое случайное число для разового решения, ручного тестирования или проверки того, что ваша реализация выдаёт значения в ожидаемых диапазонах. Для продакшена вызывайте crypto.getRandomValues() напрямую в коде или используйте нативные CSPRNG-функции языка (модуль secrets в Python, SecureRandom в Java), которые интегрируются с обработкой ошибок и логированием вашего приложения.