Към основното съдържание
LibraTool logoLibraTool

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

Генерирайте случайни числа в произволен диапазон, създавайте уникални списъци с числа или хвърляйте зарове. Използва криптографски защитена случайност.

Работи офлайн след зареждане

🔒 Всяко число използва криптографски защитената случайност на браузъра (crypto.getRandomValues) — наистина честно, не предвидимото Math.random(). Нищо не се изпраща никъде. Въпреки това не използвайте тези числа за генериране на криптографски ключове, токени за сигурност или регулирани лотарии/хазарт, които изискват одитирани, хардуерно сертифицирани източници на случайност.

Трябва да изберете победител по име от списък или да хвърлите монета? Използвайте инструмента Монета, колело и избор от списък →

Често срещани употреби

  • Генерирайте номерата на лотариятаИзберете случайни номера на лотарията за Powerball, Mega Millions, EuroMillions и други тегления.
  • Изберете случайна награда за раздаванеСправедливо изберете случайна награда от номерирана списък на вноски за конкурси и раздавания.
  • Хвърлете кубчета за игри на масаХвърлете всякаква комбинация от кубчета — d4, d6, d8, d10, d12, d20, d100 — за D&D и настолни RPG.
  • Случайно вземане на проби за изследванеГенерирайте случайни проби, присвойте случайни идентификатори или изберете случайно подмножество от номериран набор от данни.
  • Генерирайте случайни числа на тестовите данниСъздайте големи списъци със случайни числа за тестване на алгоритми, попълване на бази данни и стресово тестване на системи.

Как работи

Всяко число, генерирано от този инструмент, идва от 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
    Режимът за уникални стойности използва Fisher-Yates или проследяване на отхвърляне
    Когато режимът за уникалност е включен и диапазонът се побира в паметта (до 100 000 стойности), инструментът материализира целия пул и го разбърква с Fisher-Yates. За много големи диапазони вместо това изтегля стойности една по една, пропускайки повторения — избягвайки разхода на памет за конструиране на масив с милиарди записи.
  4. 4
    Резултатите се появяват с анимирана обратна връзка и остават в историята на сесията
    Финалните стойности се анимират на място (въртене като на игрален автомат за числа, търкалящи се зарове за режим на зарове), използвайки requestAnimationFrame, след което се появяват в превъртаем дневник на историята, който можете да копирате по всяко време. Нищо не напуска браузъра ви.

Свързани инструменти

Често задавани въпроси