Перейти к основному содержимому
LibraTool logoLibraTool

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

Генерируйте случайные числа в любом диапазоне, создавайте уникальные списки чисел или бросайте кости. Использует криптографически безопасную случайность.

Работает офлайн после загрузки

🔒 Каждое число использует криптографически защищённую случайность браузера (crypto.getRandomValues) — по-настоящему честную, а не предсказуемый Math.random(). Ничто никуда не отправляется. Тем не менее не используйте эти числа для генерации криптографических ключей, токенов безопасности или регулируемых лотерейных/игорных приложений, требующих проверенных аппаратно-сертифицированных источников случайности.

Нужно выбрать победителя по имени из списка или подбросить монету? Воспользуйтесь инструментом «Монета, колесо и выбор из списка» →

Частые применения

  • Генерирование лотерейных номеровВыбирайте случайные лотерейные номера для Powerball, Mega Millions, EuroMillions и других розыгрышей.
  • Выбрать случайного победителя для розыгрышейСправедливо выберите случайного победителя из пронумерованного списка участников для конкурсов и розыгрышей.
  • Бросайте кубики для настольных игрБросайте любую комбинацию кубиков — d4, d6, d8, d10, d12, d20, d100 — для D&D и настольных RPG.
  • Случайная выборка для исследованийГенерируйте случайные выборки, назначайте случайные ID или выбирайте случайное подмножество из пронумерованного набора данных.
  • Генерирование случайных чисел для тестовых данныхСоздавайте большие списки случайных чисел для тестирования алгоритмов, заполнения баз данных и стресс-тестирования систем.

Как это работает

Каждое число, которое генерирует этот инструмент, исходит из crypto.getRandomValues — криптографически безопасного источника случайности браузера, того же, что используется для генерации ключей TLS. Написанный вручную алгоритм выборки с отклонением находится сверху, чтобы устранить смещение по модулю, которое мучает простые реализации Math.random() % диапазон, включая диапазоны шире 2^32 через арифметику BigInt.

  1. 1
    Установите ваш диапазон и режим
    Выберите между единым числом, пакетным списком (до 1000) или многогранными костями (d4 до d100). Для списков вы также можете потребовать уникальные значения и опционально отсортировать вывод по возрастанию.
  2. 2
    crypto.getRandomValues извлекает необработанную энтропию
    Каждое число извлекается из Uint32Array (или BigUint64Array для диапазонов шире 2^32), заполненного криптографическим RNG браузера — не Math.random(). Выборка с отклонением затем отбрасывает значения, которые исказили бы распределение, так что каждое целое число в вашем диапазоне имеет точно равную вероятность.
  3. 3
    Режим уникальных значений использует Фишера-Йетса или отслеживание отклонения
    Когда режим уникальности включён, и диапазон помещается в память (до 100 000 значений), инструмент материализует полный пул и перемешивает его с помощью Фишера-Йетса. Для очень больших диапазонов он вместо этого извлекает значения по одному, пропуская повторы — избегая затрат памяти на построение массива из миллиардов записей.
  4. 4
    Результаты появляются с анимированной обратной связью и остаются в истории сессии
    Финальные значения анимируются на место (прокрутка в стиле игрового автомата для чисел, катящиеся кости для режима костей), используя requestAnimationFrame, затем появляются в прокручиваемом журнале истории, который вы можете скопировать в любое время. Ничего не покидает ваш браузер.

Похожие инструменты

Часто задаваемые вопросы