Нуждаете се от бърз и честен начин да получите случайно число? Този безплатен онлайн генератор на случайни числа генерира едно число — или цял списък с числа — в диапазон по ваш избор, от простия диапазон от 1 до 10 до диапазони, стигащи до милиарди. Задайте минималната и максималната стойност в полетата „Мин“ и „Макс“, изберете колко числа са ви нужни в полето „Брой“, и натиснете „Генерирай“. И двете граници са включени, така че диапазон от 1 до 10 може да върне както 1, така и 10.
Всеки резултат се генерира директно във вашия браузър чрез Web Crypto API (crypto.getRandomValues) — който осигурява криптографски сигурни случайни стойности от системния източник на случайност на операционната система. Нищо не се изпраща до сървър, нищо не се записва, и ние никога не виждаме вашите числа. Генерирането е моментално, поверително и продължава да работи дори при бавна връзка, след като страницата е заредена.
Опциите са създадени за реалните ситуации, в които на хората наистина им трябват случайни числа. Включете „Без повторения“, за да не се появява едно и също число два пъти — настройката, която ви трябва за жребии, томболи или разделяне на хора в групи без повторения. Трябват ви двадесет победители измежду 500 участници? Задайте „Мин“ на 1 и „Макс“ на 500, включете „Без повторения“, задайте „Брой“ на 20 и натиснете „Генерирай“. „Ред на сортиране“ подрежда резултата във възходящ или низходящ ред, а един бутон копира всички резултати наведнъж. Превключването на „Формат на резултата“ от „Нов ред“ на „Разделени с интервал“ или „Разделени със запетая“ разкрива „Брой набори“: няколко независими тегления наведнъж — например двадесет набора по 3 числа за двадесет кръга на томбола — а „Разреши повторения между наборите“ определя дали едно и също число може да се появи в повече от един от тях.
Как всъщност се генерира случайността? Вашият браузър осигурява криптографски сигурни случайни стойности чрез Web Crypto API, а не чрез JavaScript PRNG като Math.random(). Когато натиснете „Генерирай“, страницата заявява случайни стойности чрез crypto.getRandomValues и ги използва, за да произведе числа в избрания от вас диапазон. Основният източник на случайност идва от операционната система и браузъра, така че страницата не се нуждае да поддържа собствена начална стойност (seed) или псевдослучайна последователност.
Преобразуването на суровата стойност във вашия диапазон е мястото, където генераторите тихомълком грешат, и заслужава отделен абзац. Вземането на остатъка от делението на стойността по размера на диапазона е очевидният подход — и той е неточен: ако размерът на диапазона не дели точно 2^32, по-малките числа се появяват малко по-често от останалите. Тази грешка се нарича modulo bias и е измерима, а не само теоретична. Вместо това този генератор отхвърля всяка стойност, която достига или надвишава най-голямото цяло кратно на размера на диапазона, и тегли отново — техника, наречена rejection sampling. Това струва няколко допълнителни тегления, но в замяна дава точна гаранция: всяко число между „Мин“ и „Макс“ има точно еднаква вероятност, а не почти еднаква.
Кое всъщност прави едно число истински случайно? Едно число е достатъчно случайно, когато предишните резултати не разкриват нищо за следващия — а на практика съществуват три нива на това. Обикновена псевдослучайна функция като Math.random() изпълнява детерминиран алгоритъм: всеки, който научи вътрешното ѝ състояние, може да възпроизведе цялата последователност, което я прави подходяща за разбъркване на тесте карти, но негодна за каквото и да е, при което резултатът не бива да е предвидим. Криптографски сигурен генератор (CSPRNG) — нивото, което използва този инструмент — също е алгоритъм, но е проектиран да произвежда непредвидими стойности от сигурен източник на системна случайност и е изграден така, че наблюдението на изхода му не разкрива нищо за следващата стойност. Физическата случайност, която идва от източници като атмосферния шум или радиоактивния разпад, се различава и от двете нива, макар практическата разлика да изчезва, когато става дума за изтегляне на число от диапазон. Точно затова браузърите предлагат отделен криптографски API, вместо просто да подобряват Math.random(): двете решават различни проблеми, и само едното е безопасно, когато резултатът има значение за някого.
Случайна последователност не е длъжна да изглежда случайна за човека. Изтеглете десет числа между 1 и 10 и редовно ще виждате повторения като 7, 7, или кратка серия от високи стойности — и всичко това е напълно нормално. Истинската случайност е непредвидима, а не равномерно разпределена: всяко теглене е независимо, предишните числа нямат абсолютно никакво влияние върху следващите, и никое число никога не „дължи“ да излезе. Инстинктът, който твърди обратното, е заблудата на комарджията, и той е същият инстинкт, който прави хората сами по себе си лоши генератори на случайни числа — помолени да измислим случайна последователност, ние избягваме повторенията и разпределяме стойностите много по-равномерно, отколкото случайността някога би го направила. Резултат, който изглежда подозрително подреден, е отпечатъкът на човек; истинската случайност създава струпвания.
Защо да изберете този генератор на случайни числа?
- Генериране само в браузъра: числата се генерират на вашето устройство и никога не се изпращат никъде
- Случайност чрез Web Crypto API: криптографски сигурен метод, а не Math.random()
- Без modulo bias: rejection sampling гарантира, че всяко число в диапазона е еднакво вероятно
- Всякакъв диапазон: от 1 до 10 до стойности, стигащи до милиарди, с включени и двете граници
- Режим „Без повторения“: изтеглете списък без повторения за жребии и разделяне на групи
- Множество набори: няколко независими тегления с едно кликване
- Сортиране и формати на резултата: възходящ или низходящ ред, нов ред, интервали или запетаи
- История и запазване във файл: съхранявайте резултатите от тегленето, ако може да се наложи да обосновете избора
- Неограничено и безплатно: без регистрация, без ограничения за ползване, нищо не се съхранява на нашите сървъри
Случайните числа се използват на много повече места, отколкото повечето хора очакват. Учителите изпитват ученици, без да имат любимци. Стриймъри и маркетолози теглят жребий за победители в томболи и подаръчни кампании пред публика, която трябва да повярва на резултата. Играчите заменят изгубен зар или решават кой започва пръв, а на турнирите се тегли начален ред. Изследователите избират случайна извадка, за да могат резултатите им да важат и за хората, които не са участвали в изследването. Разработчиците генерират тестови данни, задават начална стойност (seed) на симулации и избират идентификатори по време на QA. Общото между всички е случаен процес на подбор, който може да бъде обяснен впоследствие: тъй като тегленето използва криптографска случайност и се случва изцяло на вашето устройство, можете да покажете как е получен резултатът, ако някой го постави под въпрос.
Този генератор има няколко важни ограничения, които си струва да знаете. Режимът „Без повторения“ не може да изтегли повече числа, отколкото съдържа диапазонът: двадесет уникални стойности между 1 и 10 просто не съществуват. Тегленията са независими и предишните резултати не влияят на следващите, така че презареждането на страницата не нулира никакъв цикъл — просто няма цикъл, в който да се намирате. И макар числата да са криптографски сигурни, тегленето тук е честен избор, а не предсказание: официалните тиражи на лотарии използват собствено физическо или сертифицирано оборудване, и нищо изчислено във вашия браузър няма никаква връзка с тях. В рамките на тези ограничения гаранцията е силна: всяко число във вашия диапазон има точно еднаква вероятност при всяко отделно теглене.