Генератор случайных чисел — бесплатно
Генерируйте случайные числа в любом диапазоне, создавайте уникальные списки чисел или бросайте кости. Использует криптографически безопасную случайность.
🔒 Каждое число использует криптографически защищённую случайность браузера (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Установите ваш диапазон и режимВыберите между единым числом, пакетным списком (до 1000) или многогранными костями (d4 до d100). Для списков вы также можете потребовать уникальные значения и опционально отсортировать вывод по возрастанию.
- 2crypto.getRandomValues извлекает необработанную энтропиюКаждое число извлекается из Uint32Array (или BigUint64Array для диапазонов шире 2^32), заполненного криптографическим RNG браузера — не Math.random(). Выборка с отклонением затем отбрасывает значения, которые исказили бы распределение, так что каждое целое число в вашем диапазоне имеет точно равную вероятность.
- 3Режим уникальных значений использует Фишера-Йетса или отслеживание отклоненияКогда режим уникальности включён, и диапазон помещается в память (до 100 000 значений), инструмент материализует полный пул и перемешивает его с помощью Фишера-Йетса. Для очень больших диапазонов он вместо этого извлекает значения по одному, пропуская повторы — избегая затрат памяти на построение массива из миллиардов записей.
- 4Результаты появляются с анимированной обратной связью и остаются в истории сессииФинальные значения анимируются на место (прокрутка в стиле игрового автомата для чисел, катящиеся кости для режима костей), используя requestAnimationFrame, затем появляются в прокручиваемом журнале истории, который вы можете скопировать в любое время. Ничего не покидает ваш браузер.
Похожие инструменты
Бросок кубиков
Бросайте от 1 до 10 кубиков (d4, d6, d8, d10, d12, d20 или d100) с короткой анимацией, смотрите сумму и каждый результат и ведите список последних бросков.
Генератор случайных цветов
Создавайте случайные цвета по одному или палитрой из пяти, фиксируйте понравившиеся, копируйте значения HEX, RGB или HSL и экспортируйте палитру как PNG или CSS.
Монетка и колесо случайностей
Бросьте виртуальную монету, раскрутите настраиваемое колесо или случайно выберите из списка опций. Использует криптографически защищённую случайность вашего браузера — не проверяемый публичный розыгрыш, поэтому избегайте регулируемых конкурсов.