Slembival

Límdu inn hvaða lista sem er og láttu slembival velja af handahófi. Hver útdráttur fer fram í vafranum þínum og gögnin þín fara aldrei af tækinu þínu.

Ýttu á „Búa til“ til að fá niðurstöðu
Skiljarinn finnst sjálfkrafa en þú getur valið hann handvirkt hér að neðan.
Ítarlegar stillingar

Þarftu að draga vinningshafa í lukkupotti, velja hvaða nemandi á að svara eða ákveða hver á að vaska upp? Þetta slembival fyrir Ísland velur af handahófi og af fyllstu sanngirni úr hvaða lista sem þú límir inn. Settu færslurnar þínar í reitinn „Atriði“ — eina í hverja línu, eða aðgreindar með kommum — stilltu hversu margar þú vilt með „Fjöldi“ og ýttu á „Búa til“. Listi þarf að minnsta kosti tvær færslur og tekur allt að 1000, og hver færsla getur verið allt að 200 stafir að lengd.

Hvert val fer fram beint í vafranum þínum með því að nota Web Crypto API (crypto.getRandomValues), sem gefur slembigildi með dulritunarfræðilegu öryggi frá undirliggjandi slembiferlum stýrikerfisins þíns. Listinn þinn er aldrei sendur á netþjón, aldrei skráður og við sjáum hann aldrei — og það skiptir meira máli hér en á mörgum öðrum kerfum, því það sem fólk límir inn er oft viðskiptavinalisti, bekkjarlisti eða nöfn samstarfsfélaga. Hnappurinn „Load from file“ tryggir það sama: vafrinn þinn les skrána og fyllir reitinn staðbundið, og engu er hlaðið upp á netið.

Stillingarnar eru hannaðar fyrir þá lista sem fólk notar raunverulega. „Skiljari“ er stilltur á „Sjálfvirkt“, sem gerir sjálft greinarmun á línubilum og kommum, þannig að listi sem er afritaður úr töflureikni, spjallskilaboðum eða skjali virkar án þess að breyta þurfi uppsetningunni. Læstu honum við „Ný lína“, „Komma“ eða „Bil“ þegar gögnin þín blanda saman sniðum — og athugaðu að „Bil“ er alltaf handvirk ákvörðun og aldrei sjálfvirk, vegna þess að færslur eins og full nöfn innihalda bil og ef þeim væri skipt sjálfkrafa myndi það skemma fleiri lista en það myndi laga. „Fjöldi“ ákveður hversu margar færslur á að draga, frá 1 til 100. Ertu að draga þrjá vinningshafa úr 200 þátttakendum? Límdu þátttakendurna inn, stilltu „Fjöldi“ á 3 og ýttu á „Búa til“. Tvær stillingar gilda aðeins þegar fjöldinn er 2 eða meira og eru óvirkar fram að því: „Engar endurtekningar“, sem ákveður hvort sama færsla geti verið dregin tvisvar, og „Úttakssnið“, sem ákveður hvernig valin atriði eru aðgreind — „Eitt í hverja línu“, „Aðgreint með bili“ eða „Aðgreint með kommu“.

Röð af hnöppum inni í reitnum „Atriði“ sér um breytingar sem þú myndir annars gera annars staðar. „Load from file“ dregur lista beint úr textaskrá eða CSV skrá. „Stokka“ endurraðar færslunum í reitnum, „Raða“ flokkar þær í stafrófsröð með tölum í eðlilegri röð (smellt aftur snýr röðinni við), og „Hreinsa“ tæmir reitinn. Hnappurinn „Fylla með sýnisgögnum“ setur inn stuttan dæmalista svo þú getir prófað slembivalið með einum smelli, á meðan „Stækka til að passa við efni“ teygir á reitnum til að sýna langan lista í heild sinni og „Minnka í sjálfgefna stærð“ fellir hann aftur saman. Fyrir neðan niðurstöðuna setur „Afrita allt“ öll valin atriði á klippiborðið þitt, „Vista í skrá“ vistar þau í tölvuna þína, og „Saga“ geymir síðustu 10 útdrætti í vafranum þínum, þannig að fyrri niðurstaða er aðeins einum smelli í burtu.

Hvernig er valið raunverulega gert? Þegar þú ýtir á „Búa til“, biður síðan vafrann um slembigildi í gegnum crypto.getRandomValues og notar þau til að velja staðsetningar í listanum þínum, í stað þess að fara í gegnum slembihermifall í JavaScript eins og Math.random(). Að breyta hráu 32 bita gildi í staðsetningu er þar sem mörg slembival fara hljóðlega úrskeiðis: að taka lokagildi deilingar með lengd listans er augljósa leiðin, en hún skekkir niðurstöðuna, því nema lengd listans gangi nákvæmlega upp í 2^32, þá koma færslur nálægt byrjun listans aðeins oftar upp en hinar. Sá galli kallast deilingarskekkja (modulo bias) og hann er mælanlegur fremur en fræðilegur. Þetta slembival hafnar í staðinn öllum gildum sem eru stærri en stærsta nákvæma margfeldi af lengd listans og dregur aftur — tækni sem kallast hafnarúrtak (rejection sampling). Það kostar nokkra auka útdrætti og tryggir nákvæmni í stað nálgunar. Staðsetning á listanum breytir engu: fyrsta færslan og sú síðasta hafa nákvæmlega sömu líkur í hverjum útdrætti.

„Engar endurtekningar“ skilur að tvær gerólíkar tegundir af útdrætti og tölfræðin hefur nafn yfir hvora um sig. Þegar kveikt er á því, stokkar slembivalið afrit af listanum þínum með Fisher-Yates reikniritinu og tekur færslurnar ofan af — rétt eins og að draga miða upp úr hatti án þess að setja þá aftur ofan í, svo enginn er valinn tvisvar og sérhver hópur af þeirri stærð er jafnlíklegur. Það kallast úrtak án skila (sampling without replacement), og það er það sem þú vilt fyrir vinningshafa, liðaskiptingu og röðun. Þegar slökkt er á því er hvert val gert óháð öllum listanum, svo sama færslan getur komið upp oftar en einu sinni — úrtak með skilum (sampling with replacement), sem er það sem þú vilt þegar allir geta enn verið dregnir í hverri umferð, eins og í endurteknum útdráttum eða við snöggt tölfræðilegt úrtak. Hvorug aðferðin er sanngjarnari en hin; þær svara ólíkum spurningum.

Sanngjarn útdráttur á ekki að líta út fyrir að vera sanngjarn. Dragðu fimm nöfn af tíu og þú munt reglulega sjá tvö nöfn sem stóðu hlið við hlið á upprunalega listanum, eða sama nafnið tvisvar í röð þegar endurtekningar eru leyfðar, og hvert og eitt af því er eðlilegt. Hver útdráttur er óháður öðrum: fyrri útdrættir hafa nákvæmlega engin áhrif á þá sem á eftir koma, og enginn á „inni“ vinning. Sú eðlisávísun sem segir okkur annað er rökvilla fjárhættuspilarans (gambler's fallacy), og það er sama eðlisávísun sem gerir okkur léleg í að velja af handahófi sjálf — ef okkur er gert að velja af handahófi, forðumst við fyrstu og síðustu færsluna, forðumst að endurtaka nafn og dreifum valinu mun jafnar en tilviljun myndi gera. Niðurstaða sem lítur grunsamlega snyrtilega út er fingrafar manneskju; raunveruleg tilviljun skapar þyrpingar.

Hvers vegna að velja þetta slembival?

Slembival er notað hvar sem ákvörðun þarf að þola gagnrýni. Á Íslandi velja kennarar nemendur án þess að gera upp á milli þeirra og skipta bekknum upp í hópa. Straumspilarar og markaðsfólk draga vinningshafa í gjafaleikjum og happdrættum fyrir framan áhorfendur sem verða að trúa niðurstöðunni. Stjórnendur úthluta verkefnum sem enginn býður sig fram í, og teymi ákveða kynningarröð eða hver er á bakvakt. Rannsakendur draga slembiúrtak færslna til endurskoðunar. Fjölskyldur binda enda á rifrildi um hvað eigi að horfa á, og soltinn hópur velur veitingastað. Sameiginlegi þráðurinn er val sem hver sem er getur útskýrt á eftir: útdrátturinn notar dulritunarfræðilega slembni, hann á sér stað að öllu leyti í tækinu þínu, og „Saga“ geymir niðurstöðuna ef einhver spyr út í hana síðar.

Þetta slembival hefur nokkrar eðlilegar takmarkanir sem vert er að vita af. Það getur ekki dregið fleiri ólíkar færslur en listinn þinn inniheldur — þrír vinningshafar þurfa að minnsta kosti þrjú nöfn — og það stoppar við 1000 færslur sem mega vera 200 stafir hver, með allt að 100 val í einum útdrætti. „Stokka“ og „Raða“ vinna línu fyrir línu, þannig að listi aðgreindur með kommu sem er límdur á eina línu er aðeins endurraðaður þegar honum hefur verið breytt í eina færslu á línu; og báðir hnapparnir endurraða í reitnum en ekki í sjálfum útdrættinum, sem er jafn sanngjarn sama í hvaða röð færslurnar þínar eru. Hver færsla hefur einnig nákvæmlega sama vægi að upplagi, þannig að ef eitt nafn á að gilda tvöfalt þarf það nafn að koma tvisvar fram á listanum. Innan þessara marka er tryggingin sterk — hver einasta færsla á listanum þínum hefur nákvæmlega sömu líkur, í hverjum einasta útdrætti.

FAQ

Hvernig dreg ég nafn af handahófi af lista?

Límdu nöfnin í reitinn „Atriði“ — eitt í hverja línu, eða aðgreind með kommum eða bilum — skildu „Fjöldi“ eftir sem 1 og ýttu á „Búa til“. Eitt nafn er dregið strax. Fyrir mörg nöfn í einu, hækkaðu „Fjöldi“ í þá tölu sem þú þarft.

Er valið raunverulega sanngjarnt?

Já. Hvert val notar Web Crypto API (crypto.getRandomValues) vafrans þíns ásamt hafnarúrtaki (rejection sampling), sem fjarlægir þá deilingarskekkju sem einfaldari forritun myndi búa til. Hver færsla hefur nákvæmlega sömu líkur óháð staðsetningu á listanum, og að draga margar ólíkar færslur notar Fisher-Yates stokkun, svo hver hópur af þeirri stærð er líka jafnlíklegur.

Er listanum mínum hlaðið upp á netþjón hjá ykkur?

Nei. Allur útdrátturinn fer fram staðbundið í vafranum þínum: listinn, valið og sagan fara aldrei af tækinu þínu, þannig að það er fullkomlega öruggt að líma inn nöfn, tölvupósta eða hvaða persónulega lista sem er. Hnappurinn „Load from file“ vinnur líka staðbundið — vafrinn þinn les skrána sjálfur og engu er hlaðið upp.

Get ég límt inn lista aðgreindan með kommu eða bili í stað þess að hafa eitt atriði á hverri línu?

Já. „Skiljari“ er stilltur á „Sjálfvirkt“, sem greinir sjálft að línubil og kommur, þannig að listi afritaður úr töflureikni, spjallskilaboðum eða skjali virkar nákvæmlega eins og hann er. Listi aðgreindur með bili krefst eins auka skrefs — stilltu „Skiljari“ á „Bil“ — því færslur eins og full nöfn innihalda sjálf bil og er aldrei skipt sjálfkrafa. Læstu „Skiljari“ við „Ný lína“ eða „Komma“ ef gögnin þín blanda saman sniðum.

Hvað gerir „Engar endurtekningar“ stillingin?

Þegar kveikt er á „Engar endurtekningar“ er hver færsla sem dregin er ólík — eins og að draga miða upp úr hatti án þess að setja þá aftur ofan í, sem er það sem þú vilt fyrir vinningshafa eða liðaskiptingu. Þegar slökkt er á henni getur sama færslan komið upp oftar en einu sinni, sem tölfræðingar kalla úrtak með skilum.

Hvers vegna eru „Engar endurtekningar“ og „Úttakssnið“ grá og óvirk?

Vegna þess að bæði gilda aðeins þegar þú dregur meira en eina færslu, eins og vísbendingin við hliðina á þeim segir: „Gildir þegar fjöldi er 2 eða meira“. Hækkaðu „Fjöldi“ í 2 eða meira og bæði verða aðgengileg; þegar fjöldinn er 1 er ekkert til að endurtaka og engu til að skipta.

Hvað gerir „Úttakssnið“ valmöguleikinn?

Hann ákveður hvernig mörg valin atriði eru sýnd og afrituð: „Eitt í hverja línu“, „Aðgreint með bili“ fyrir stutt spjallskilaboð, eða „Aðgreint með kommu“ til að líma í töflureikni eða skriftu. Það verður aðgengilegt þegar „Fjöldi“ er 2 eða meira.

Hvað gera „Stokka“ og „Raða“ hnapparnir?

„Stokka“ endurraðar færslunum inni í reitnum „Atriði“, og „Raða“ flokkar þær í stafrófsröð með tölum í eðlilegri röð — ef smellt er aftur snýst röðin við. Báðir breyta því hvernig listinn þinn er skrifaður, ekki hvernig útdrátturinn virkar: slembivalið er jafn sanngjarnt óháð því í hvaða röð færslurnar eru.

Hvað getur listinn innihaldið mörg atriði og hversu mörg get ég valið í einu?

Listinn tekur frá 2 til 1000 færslur, allt að 200 stafir hver, og einn útdráttur skilar allt að 100 atriðum. Tómar línur og bil í kring eru hunsuð, þannig að listi sem er límdur úr töflureikni eða skjali virkar eins og hann er.

Er þetta hentugt til að velja vinningshafa í happdrætti eða gjafaleik?

Já, og það er ein algengasta notkunin. Límdu inn þátttakendurna, stilltu „Fjöldi“ á fjölda vinninga, hafðu kveikt á „Engar endurtekningar“ svo enginn vinni tvisvar, og ýttu á „Búa til“. Vegna þess að útdrátturinn notar dulritunarfræðilega örugga slembni og keyrir alfarið í tækinu þínu, er auðvelt að útskýra ferlið og „Saga“ geymir niðurstöðuna ef þátttakandi spyr út í hana síðar.

Get ég notað þetta til að skipta fólki í lið?

Já. Stilltu „Fjöldi“ á stærð fyrsta liðsins og ýttu á „Búa til“ — valin nöfn eru lið eitt. Fjarlægðu þau af listanum og endurtaktu fyrir næsta lið. Hafðu kveikt á „Engar endurtekningar“ svo enginn lendi í tveimur liðum í einu þegar dregið er í íþróttamótum eða skólaverkefnum hérlendis.

Hvers vegna kom sama nafnið upp tvisvar í röð?

Vegna þess að óháðir útdrættir endurtaka sig, og þannig lítur slembni út. Hver útdráttur hunsar alla útdrætti á undan, svo í lista með tíu nöfnum eru líkurnar á að sama nafnið komi upp tvisvar í röð 1 á móti 10 í hvert skipti — algengt, ekki gallað. Kveiktu á „Engar endurtekningar“ ef þú þarft að hvert val innan eins útdráttar sé ólíkt.

Man slembivalið valin mín, og er það ókeypis?

„Saga“ geymir síðustu 10 útdrætti í þínum eigin vafra, svo þú getur endurheimt, afritað eða eytt fyrri niðurstöðu, og hreinsað allt hvenær sem þér sýnist. Verkfærið er algjörlega ókeypis og án nýskráningar, og vegna þess að engu er hlaðið upp gætum við ekki séð eða geymt valin þín jafnvel þó við vildum.