DevToys Web Pro iconDevToys Web ProБлог
Оцените нас:
Попробуйте расширение для браузера:

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

Режим

Параметры

Мин
Макс
Количество

Вывод

  • Технические детали

    Как работает генератор случайных чисел

    Что делает инструмент

    Генератор случайных чисел создаёт криптографически стойкие случайные целые числа или числа с плавающей запятой, используя 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), которые интегрируются с обработкой ошибок и логированием вашего приложения.