Случаен избор од листата

Вметнете која било листа — имиња, задачи или идеи — и оставете алатката да направи фер избор. Извлекувањето се одвива во вашиот прелистувач, така што податоците никогаш не го напуштаат вашиот уред.

Притиснете «Генерирај» за избор
Разделувачот се одредува автоматски, но можете рачно да го изберете подолу.
Напредни опции

Треба да извлечете победник на наградна игра, да повикате ученик пред табла или да одлучите кој ќе го фрли ѓубрето денес? Оваа бесплатна онлајн алатка праведно и по случаен избор избира победници од која било листа што ќе ја вметнете. Внесете ги вашите опции во полето „Елементи“ — по една во секој ред или одделени со запирки, поставете го саканиот број на резултати во полето „Број“ и притиснете „Генерирај“. Листата мора да има најмалку два елементи и може да собере до 1000 записи, секој со должина до 200 знаци.

Секое извлекување се врши директно во вашиот прелистувач користејќи Web Crypto API (crypto.getRandomValues), кое добива криптографски сигурни случајни вредности од вашиот оперативен систем. Вашата листа никогаш не се испраќа на сервер, не се зачувува и ние никогаш не ја гледаме — ова овде е многу поважно отколку кај другите генератори, бидејќи луѓето најчесто вметнуваат листи на клиенти, класни дневници или имиња на колеги. Копчето „Вчитај од датотека“ го почитува истото ветување: вашиот прелистувач самиот ја чита датотеката и го пополнува полето локално, без да прикачува ништо никаде.

Опциите се прилагодени на листите што луѓето навистина ги користат. Опцијата „Разделувач“ стандардно е поставена на „Автоматски“ и самата препознава нови редови и запирки, така што листата копирана од табела, порака или документ функционира без дополнително форматирање. Заклучете ја на „Нов ред“, „Запирка“ или „Празно место“ кога во вашите податоци се мешаат различни формати. Имајте предвид дека опцијата „Празно место“ е секогаш свесен избор и никогаш не се применува автоматски, бидејќи записите како име и презиме содржат празни места во себе, а автоматското разделување според нив би ја уништило листата. Полето „Број“ одредува колку елементи ќе се извлечат (од 1 до 100). Извлекувате тројца добитници од 200 учесници? Вметнете ги учесниците, поставете го полето „Број“ на 3 и притиснете „Генерирај“. Две опции стануваат достапни само кога бројот е 2 или повеќе, а дотогаш остануваат неактивни (сиви): прекинувачот „Без повторувања“, кој одлучува дали истиот елемент може да се извлече двапати, и опцијата „Формат на резултатот“, која одредува како се разделуваат резултатите („Секој во нов ред“, „Одделени со празни места“ или „Одделени со запирки“).

Низата копчиња внатре во полето „Елементи“ врши уредување кое инаку би морале да го правите на друго место. Копчето „Вчитај од датотека“ извлекува листа директно од текстуална или CSV датотека. „Мешај“ го менува редоследот на записите во полето, „Подреди“ ги подредува азбучно и според природниот редослед на броевите (додека втор клик го превртува редоследот), а „Исчисти“ целосно го празни полето. Копчето „Внеси пример“ вметнува кратка тест листа за да можете да ја испробате алатката со еден клик. Опцијата „Прошири за целата листа“ го отвора полето за да ја прикаже целата долга листа, додека „Собри“ го враќа во првобитната големина. Под резултатот, копчето „Копирај сѐ“ го пренесува секој извлечен елемент во таблата со исечоци, „Зачувај во датотека“ ги запишува на вашиот уред, а делот „Историја“ ги чува вашите последни 10 извлекувања во прелистувачот, па претходниот резултат ви е достапен со еден клик.

Како навистина се прави случајниот избор? Кога ќе притиснете „Генерирај“, страницата, наместо да се потпира на псевдослучајната JavaScript функција Math.random(), бара од прелистувачот случајни вредности преку crypto.getRandomValues и ги користи за да избере позиции во вашата листа. Претворањето на сирова 32-битна вредност во позиција е местото каде што повеќето алатки тивко грешат: делењето на вредноста со должината на листата и земањето на остатокот е очигледен, но пристрасен метод. Тоа е така бидејќи, освен ако бројот 2^32 не се дели со должината на листата без остаток, елементите на почетокот од листата паѓаат малку почесто од останатите. Овој недостаток се нарекува modulo bias и е мерлив, а не теоретски. Оваа алатка наместо тоа ја отфрла секоја вредност што го надминува најголемиот точен содржател на должината на листата и извлекува повторно — техника позната како rejection sampling. Ова чини неколку дополнителни извлекувања во позадина, но дава точна гаранција наместо приближна. Позицијата во листата не менува ништо: првиот и последниот елемент имаат еднаква веројатност при секое извлекување.

Прекинувачот „Без повторувања“ одвојува два сосема различни вида на извлекување, а во статистиката секој од нив има свое име. Кога е вклучен, алатката меша копија од вашата листа користејќи го алгоритмот Fisher-Yates и ги зема елементите од врвот — исто како да влечете ливчиња од капа без да ги враќате назад, така што никој не се избира двапати и секоја група со таа големина има еднакви шанси. Ова се нарекува sampling without replacement, и тоа е она што ви треба при избор на добитници на награди, тимови или редослед за настап. Кога е исклучен, секој избор се прави независно од целата листа, па така истиот елемент може да падне повеќе од еднаш. Тоа е sampling with replacement, што е потребно кога сите остануваат валидни во секој круг, како кај повторени извлекувања или при брз статистички примерок. Ниту еден од овие режими не е поправеден од другиот; тие едноставно одговараат на различни потреби.

Фер извлекувањето од страна не треба да изгледа фер. Ако извлекувате пет имиња од десет, редовно ќе гледате два елементи кои во првичната листа биле еден до друг, или истото име двапати по ред (ако се дозволени повторувања), и секој од овие случаи е сосема нормален. Секое извлекување е независно: претходните резултати немаат никакво влијание врз следните, и никогаш не доаѓа нечиј „ред“ за победа. Инстинктот што го тврди спротивното се нарекува gambler's fallacy, и тоа е истиот инстинкт поради кој ние самите лошо правиме случаен избор — кога ќе нѐ замолат да избереме нешто по случаен избор, ги избегнуваме првиот и последниот елемент, се трудиме да не ги повторуваме имињата и нашите избори ги распределуваме многу порамномерно отколку вистинската случајност. Резултат кој изгледа сомнително уредно е отпечаток од човечки прст; вистинската случајност создава групирања и повторувања.

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

Случајниот избор е корисен секаде каде што одлуката мора да преживее преиспитување. Наставниците повикуваат ученици пред табла без да издвојуваат миленици и го делат класот во проектни групи. Креаторите на содржина и маркетерите извлекуваат добитници на наградни игри пред публика која мора да верува во праведноста на резултатот. Менаџерите ги распределуваат задачите што никој не сака доброволно да ги преземе, а тимовите одлучуваат за редоследот на презентациите или кој ќе дежура. Истражувачите извлекуваат случаен примерок од записи за ревизија. Семејствата ставаат крај на расправата за тоа што ќе се гледа, а гладна дружина избира кафеана. Заедничка карактеристика за сите овие ситуации е избор кој секој може да го објасни подоцна: извлекувањето користи криптографска случајност, се одвива само на вашиот уред, а делот „Историја“ го зачувува резултатот ако некој подоцна се посомнева во него.

Вреди да се знаат и неколку искрени ограничувања на оваа алатка. Алатката не може да извлече повеќе уникатни елементи отколку што содржи вашата листа — за тројца победници потребни се најмалку три имиња — и има лимит од 1000 записи (со по 200 знаци секој) и 100 резултати при едно извлекување. Копчињата „Мешај“ и „Подреди“ функционираат ред по ред, па затоа листа одделена со запирки и вметната во еден ред ќе се прераспредели само кога елементите ќе бидат поделени по еден во секој ред; освен тоа, двете копчиња го менуваат редоследот на текстот во полето, а не самото извлекување, бидејќи извлекувањето е подеднакво праведно без оглед на тоа по кој редослед се вашите записи. Исто така, секој елемент стандардно има иста тежина, па ако сакате едно име да има двојни шанси при извлекувањето, тоа име мора да биде внесено двапати во листата. Во рамките на овие граници, гаранцијата е цврста — секој елемент од вашата листа има сосема исти шанси при секое поединечно извлекување.

FAQ

Како по случаен избор да изберам име од листа?

Вметнете ги имињата во полето „Елементи“ — по едно во секој ред или одделени со запирки или празни места — оставете го полето „Број“ на 1 и притиснете „Генерирај“. Едно име ќе биде извлечено веднаш. Доколку сакате да извлечете повеќе имиња одеднаш, зголемете ја вредноста на полето „Број“ до саканата бројка.

Дали изборот е навистина фер?

Да. Секое извлекување го користи Web Crypto API (crypto.getRandomValues) на вашиот прелистувач заедно со техниката rejection sampling, која го отстранува modulo bias што би настанал при едноставна имплементација. Секој елемент има сосема иста веројатност да биде извлечен без оглед на неговата позиција во листата, а за извлекување на повеќе уникатни елементи се користи Fisher-Yates алгоритам за мешање, така што и секоја група со таа големина има еднакви шанси.

Дали мојата листа се прикачува на вашиот сервер?

Не. Целото извлекување се одвива локално во вашиот прелистувач: листата, резултатите и историјата никогаш не го напуштаат вашиот уред, така што е безбедно да вметнувате имиња, е-пошта адреси или какви било приватни листи. Копчето „Вчитај од датотека“ исто така работи локално — вашиот прелистувач самиот ја чита датотеката и ништо не се прикачува на интернет.

Можам ли да вметнам листа одделена со запирки или празни места наместо по еден елемент во секој ред?

Да. Опцијата „Разделувач“ е поставена на „Автоматски“, со што самата препознава нови редови и запирки, така што листа копирана од табела, порака или документ функционира без никакви промени. За листа одделена со празни места е потребен еден дополнителен чекор — поставете ја опцијата „Разделувач“ на „Празно место“ — бидејќи записите како име и презиме и самите содржат празни места, па тие никогаш не се разделуваат автоматски. Ако вашите податоци имаат мешани формати, заклучете ја опцијата „Разделувач“ на „Нов ред“ или „Запирка“.

Што прави прекинувачот „Без повторувања“?

Кога опцијата „Без повторувања“ е вклучена, секој извлечен елемент е различен — исто како да влечете ливчиња од капа без да ги враќате назад, и тоа е токму она што ви треба кога избирате победници или тимови. Кога е исклучена, истиот елемент може да се извлече повеќе од еднаш, што статистичарите го нарекуваат sampling with replacement.

Зошто опциите „Без повторувања“ и „Формат на резултатот“ се неактивни (сиви)?

Бидејќи и двете се применуваат само кога извлекувате повеќе од еден елемент, како што вели советот покрај нив: „Се применува само кога бројот е поголем од 1.“ Зголемете го полето „Број“ на 2 или повеќе, и двете ќе станат достапни; сѐ додека бројот е 1, нема што да се дуплира ниту да се разделува.

Што прави опцијата „Формат на резултатот“?

Таа одредува како ќе се прикажуваат и копираат повеќе извлечени елементи: „Секој во нов ред“, „Одделени со празни места“ за брзо праќање порака во разговор, или „Одделени со запирки“ за вметнување во табела или скрипта. Оваа опција станува достапна кога полето „Број“ е 2 или повеќе.

Што прават копчињата „Мешај“ и „Подреди“?

Копчето „Мешај“ го менува редоследот на записите внатре во полето „Елементи“, додека „Подреди“ ги подредува азбучно и според природниот редослед на броевите — ако кликнете повторно, редоследот се превртува. Двете го менуваат само начинот на кој е напишана вашата листа, а не начинот на кој функционира извлекувањето: алатката е подеднакво праведна без оглед на редоследот на елементите.

Колку елементи може да содржи листата и колку од нив можам да извлечам одеднаш?

Листата содржи од 2 до 1000 записи (до 200 знаци секој), а едно извлекување враќа до 100 резултати. Празните редови и празните места на краевите се игнорираат, така што листата вметната од табела или документ функционира без промени.

Дали оваа алатка е соодветна за избор на добитници на наградни игри?

Да, и тоа е една од најчестите намени. Вметнете ги учесниците, поставете го полето „Број“ според бројот на награди, оставете ја опцијата „Без повторувања“ вклучена за никој да не освои две награди, и притиснете „Генерирај“. Бидејќи извлекувањето користи криптографски сигурна случајност и се одвива исклучиво на вашиот уред, процесот е лесен за објаснување, а делот „Историја“ го зачувува резултатот доколку некој од учесниците подоцна се посомнева во него.

Можам ли да ја користам за поделба на луѓе во тимови?

Да. Поставете го полето „Број“ според големината на првиот тим и притиснете „Генерирај“ — извлечените имиња ќе го сочинуваат првиот тим. Избришете ги од листата и повторете го процесот за следниот тим. Оставете ја опцијата „Без повторувања“ вклучена за никој да не заврши во два тима истовремено.

Зошто истото име падна двапати по ред?

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

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

Делот „Историја“ ги чува последните 10 извлекувања во вашиот прелистувач, така што можете да го вратите, копирате или избришете претходниот резултат, а по потреба и да исчистите сѐ одеднаш. Алатката е целосно бесплатна, без регистрација, и бидејќи податоците не се пренесуваат никаде, ние не би можеле да ги видиме ниту зачуваме резултатите од вашите извлекувања дури и да сакаме.