Генератор на случајни броеви

Генерирајте случаен број, список или неколку групи броеви во кој било опсег — сè се создава директно во вашиот прелистувач со криптографски безбедна случајност, никогаш на сервер.

Притиснете «Генерирај» за избор
Опции

Ви треба брз и фер начин да добиете случаен број? Овој бесплатен онлајн генератор на случајни броеви создава еден број — или цела листа броеви — во кој било опсег што ќе го изберете, од едноставен опсег од 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, или кратка серија со високи вредности — и секоја од овие ситуации е сосема нормална. Вистинската случајност е непредвидлива, а не рамномерно распоредена: секој број се појавува независно од претходните, поранешните броеви немаат апсолутно никакво влијание врз следните, и ниту еден број никогаш не е „на ред“ да излезе. Инстинктот што тврди спротивно е заблудата на коцкарот, и тоа е истиот инстинкт што ги прави луѓето сами по себе лоши генератори на случајни броеви — кога ќе нè замолат да измислиме случајна низа, ги избегнуваме повторувањата и ги распределуваме вредностите многу порамномерно отколку што случајноста некогаш би го направила тоа. Резултат што изгледа сомнително уредно носи човечки потпис; вистинската случајност создава натрупувања.

Зошто да го изберете овој генератор на случајни броеви?

Случајните броеви се појавуваат на многу повеќе места отколку што повеќето луѓе очекуваат. Наставниците избираат ученици без фаворизирање. Стримерите и маркетинг тимовите извлекуваат победници на наградни игри и жребови пред публика која мора да му верува на резултатот. Играчите заменуваат изгубена коцка или одлучуваат кој почнува прв, а на турнирите се извлекува почетниот редослед. Истражувачите избираат случаен примерок за да можат нивните наоди да важат и за луѓето кои не учествувале. Развивачите генерираат тестни податоци, поставуваат почетна вредност (seed) на симулации и избираат идентификатори за време на QA. Заедничката нишка е случаен процес на избор кој може да се објасни подоцна: бидејќи извлекувањето користи криптографска случајност и се одвива целосно на вашиот уред, можете да покажете како е создаден резултатот ако некој го доведе во прашање.

Овој генератор има неколку важни ограничувања што вреди да се знаат. Режимот „Без повторувања“ не може да извлече повеќе броеви отколку што содржи опсегот: дваесет уникатни вредности меѓу 1 и 10 едноставно не постојат. Извлекувањата се независни и претходните резултати не влијаат на следните, така што освежувањето на страницата не ресетира никаков циклус — едноставно нема циклус во кој би се наоѓале. И иако броевите се криптографски силни, извлекувањето тука е фер избор, а не предвидување: официјалните тиражи на лотарии користат сопствена физичка или сертифицирана опрема, и ништо пресметано во вашиот прелистувач нема никаква врска со нив. Во рамките на овие ограничувања гаранцијата е силна: секој број во вашиот опсег има еднаква веројатност при секое одделно извлекување.

FAQ

Дали случајноста е криптографски безбедна?

Се користи Web Crypto API на вашиот прелистувач (crypto.getRandomValues), кој користи случајност од криптографски безбедниот извор на вашиот оперативен систем. За разлика од едноставните псевдослучајни функции, неговиот резултат е дизајниран да биде непредвидлив во пракса, а rejection sampling обезбедува секој број во опсегот да биде подеднакво веројатен, наместо да ги фаворизира најниските вредности.

Како да генерирам случаен број во одреден опсег?

Внесете ја најмалата можна вредност во полето „Мин“ и најголемата во полето „Макс“, потоа притиснете „Генерирај“. Двете граници се вклучени во резултатот, така што опсег од 1 до 10 може да даде и 1 и 10.

Можам ли да генерирам неколку случајни броеви одеднаш?

Да. Поставете го полето „Број“ на потребната количина (до 1000) и генераторот ќе ја создаде целата листа со едно кликнување. Потоа можете да ги копирате сите резултати во клипборд со копчето за копирање, или да ги зачувате во датотека.

Можам ли да генерирам повеќе групи броеви одеднаш?

Да. Префрлете го „Форматот на резултатот“ од „Нов ред“ на „Одделени со празни места“ или „Одделени со запирки“ за да се појави полето „Број групи“. Поставете го на бројот независни извлекувања што ви требаат — на пример дваесет групи по 3 броја за дваесет рунди на извлекување — и изберете дали се дозволени дупликати меѓу различните групи.

Можам ли да ги сортирам генерираните броеви?

Да. Користете ја опцијата „Редослед на сортирање“ за да го подредите секој список растечки или опаѓачки, или оставете ја на „Нема“ за да ги задржите броевите во редоследот во кој биле генерирани.

Како да избегнам дупли броеви?

Вклучете го прекинувачот „Без повторувања“. Кога е вклучен, секој генериран број во листата е различен — идеално за жребови, наградни игри, или поделба на луѓе во групи. Имајте предвид дека бројот на извлечени броеви не смее да го надмине бројот на вредности во опсегот: не можете да извлечете 20 уникатни броеви меѓу 1 и 10.

Зошто постојано се повторуваат истите броеви?

Затоа што независните извлекувања се повторуваат, и токму така изгледа случајноста. Секое извлекување целосно ги игнорира сите претходни извлекувања, така што во опсег од 1 до 10 истиот број да се појави двапати по ред има шанса 1 од 10 секој пат — вообичаено, а не расипано. Ако ви треба список без повторувања, вклучете „Без повторувања“; тоа намерно го ограничува извлекувањето, наместо да поправа некоја грешка.

Зошто случајната низа не изгледа случајна?

Затоа што вистинската случајност е непредвидлива, а не рамномерно распоредена. Луѓето очекуваат случајниот резултат да биде уредно распореден, па натрупувањата, повторувањата и кратките серии како 7, 7, 8 изгледаат како грешки, иако се токму тоа што случајноста го создава. Низа што на човек му изгледа уредна обично не била случајна.

Можам ли да ѝ верувам на случајноста генерирана во прелистувач?

Да, кога доаѓа од Web Crypto API, како што е случајот овде. crypto.getRandomValues обезбедува криптографски силни случајни вредности користејќи го изворот на случајност на оперативниот систем, а не JavaScript PRNG како Math.random(). На Math.random() не треба да му се верува кога нешто навистина е важно: тој е детерминистички и никогаш не бил дизајниран да биде непредвидлив.

Можат ли случајните броеви да се предвидат или на нив да се влијае?

Не овде. Вредностите доаѓаат од криптографски безбедниот генератор на вашиот оперативен систем, така што набљудувањето на претходните резултати не открива ништо за следниот, а извлекувањето се одвива целосно на вашиот уред — нема сервер во кој некој може да се вмеша, и нема барања што некој би можел да ги пресретне. Ниту ние не можеме да влијаеме на вашите резултати, бидејќи никогаш не ги гледаме.

Дали е погоден за избирање победници на наградни игри или жребови?

Да. Доделете му на секој учесник број, генерирајте резултат во тој опсег, и победува учесникот чиј број се совпаѓа. Бидејќи изворот е криптографски безбеден и извлекувањето се одвива целосно на вашиот уред, процесот е лесен за објаснување и документирање ако учесник го доведе во прашање резултатот. Ако избирате броеви за ливче за лотарија, алатката функционира како средство за случаен избор, а не како предвидување: официјалните тиражи на лотарии немаат никаква врска со неа.

Дали освежувањето на страницата ја менува случајноста?

Не, и дури не е ни потребно. Секое извлекување веќе бара нови случајни вредности од оперативниот систем, така што резултатите се независни без разлика дали ќе притиснете „Генерирај“ десет пати по ред, или ќе ја превчитате страницата меѓу секое притискање. Нема циклус за рестартирање и нема состојба што би застарела — освежувањето само ги брише резултатите прикажани на екранот.

Дали генераторот е бесплатен, и дали ги зачувувате моите броеви?

Алатката е потполно бесплатна и не бара регистрација. Сите броеви се генерираат локално во вашиот прелистувач и никогаш не го напуштаат вашиот уред, така што не би можеле да ги зачуваме или видиме вашите резултати, дури и да сакавме.