Треба вам брз и поштен начин да добијете случајан број? Овај бесплатан онлајн генератор случајних бројева генерише један број – или читав списак бројева – у било ком опсегу који изаберете, од једноставног опсега од 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, 8, или кратак низ који сав падне високо – и свака од тих ситуација је сасвим уобичајена. Права случајност је непредвидива, а не равномерно распоређена: сваки број се појављује независно од претходних, ранији бројеви немају апсолутно никакав утицај на касније, и ниједан број никада нема „већу шансу“ да буде извучен од другог. Инстинкт који тврди супротно је коцкарева заблуда, и то је исти инстинкт због којег су људи сами по себи лоши генератори случајних бројева – када нас замоле да смислимо случајан низ, избегавамо понављања и распоређујемо вредности много равномерније него што би то случајност икада учинила. Резултат који изгледа сумњиво уредно носи људски печат; права случајност ствара нагомилавања.
Зашто изабрати овај генератор случајних бројева?
- Генерисање само у прегледачу: бројеви се генеришу на вашем уређају и никада се не шаљу нигде
- Случајност преко Web Crypto API: криптографски безбедан метод, а не Math.random()
- Без modulo bias: rejection sampling одржава једнаку вероватноћу за сваки број у опсегу
- Било који опсег: од 1 до 10 па до вредности које сежу у милијарде, обе границе укључене
- Режим „Без понављања“: извуците списак без понављања за жребове и поделу група
- Више скупова: неколико независних извлачења једним кликом
- Сортирање и формати резултата: растуће или опадајуће, нови ред, размаци или зарези
- Историја и чување у датотеку: сачувајте запис извлачења који можда треба да оправдате
- Неограничено и бесплатно: без регистрације, без ограничења коришћења, ништа на нашим серверима
Случајни бројеви се појављују на много више места него што већина људи очекује. Наставници прозивају ученике без фаворизовања. Стримери и маркетиншки тимови извлаче добитнике наградних игара и жребова пред публиком која мора да верује резултату. Играчи замењују изгубљену коцкицу или одлучују ко почиње први, а на турнирима се извлачи почетни редослед. Истраживачи бирају случајан узорак како би њихови налази важили и за људе који нису учествовали. Програмери генеришу тестне податке, подешавају почетну вредност (seed) за симулације и бирају идентификаторе током QA. Заједничка нит је случајан процес избора који се касније може објаснити: пошто извлачење користи криптографску случајност и одвија се у потпуности на вашем уређају, можете да покажете како је резултат генерисан ако неко посумња у њега.
Овај генератор има неколико разумних ограничења која вреди знати. Режим „Без понављања“ не може да извуче више бројева него што опсег садржи: двадесет јединствених вредности између 1 и 10 једноставно не постоји. Извлачења су независна и претходни резултати не утичу на касније, тако да освежавање странице не ресетује никакав циклус – једноставно не постоји циклус у коме бисте се налазили. И иако су бројеви криптографски снажни, извлачење је овде поштен избор, а не предвиђање: званични тиражи лутрије користе сопствену физичку или сертификовану опрему, и ништа израчунато у вашем прегледачу нема никакве везе с њима. У оквиру ових ограничења гаранција је снажна: сваки број у вашем опсегу има потпуно исту шансу, при сваком појединачном извлачењу.