Siirry sisältöön

Satunnainen Listan Sekoittaja - Ilmainen Online-Listasekoitustyökalu

Ilmainen satunnainen listasekoittaja käyttäen todistettua Fisher-Yates-algoritmia. Sekoita nimet, opiskelijat, joukkueet tai tehtävät välittömästi. Täydellinen opettajille, turnauksiin ja puolueettomiin päätöksiin. Ei vaadi rekisteröitymistä.

Satunnainen Listan Sekoittaja

Syötä sekoitettavat kohteet, yksi riville. Tyhjät rivit poistetaan automaattisesti.

Latauslaskuri...
📚

Dokumentaatio

Mikä on listan satunnaissekoitin?

Listan satunnaissekoitin on työkalu, joka ottaa luettelon kohteita ja palauttaa ne uuteen, satunnaiseen järjestykseen. Kirjoita nimet, tehtävät tai mitä tahansa muuta, yksi per rivi, ja työkalu järjestää ne uudelleen niin, että jokaisella mahdollisella järjestyksellä on yhtä suuri todennäköisyys tulla valituksi. Työkalu käyttää Fisher–Yates-sekoitusta, joka on tunnettu algoritmi vääristymättömien satunnaisjärjestysten tuottamiseen.

Näin käytät listan satunnaissekoitinta

  1. Kirjoita tai liitä luettelo kenttään, yksi kohde riviä kohden.
  2. Napsauta ”Listan satunnaistaminen”. Kohteet järjestetään heti uudelleen.
  3. Lue painikkeen alapuolella oleva sekoitettu luettelo, joka on numeroitu uuteen järjestykseensä.
  4. Napsauta ”Listan satunnaistaminen” uudelleen saadaksesi uuden, edellisestä riippumattoman sekoituksen.
  5. Napsauta ”Kopioi tulos” kopioidaksesi uuden järjestyksen tai ”Tyhjennä” aloittaaksesi alusta.

Syötteen tyhjät rivit poistetaan automaattisesti, joten ylimääräiset rivinvaihdot eivät luo tuloksiin tyhjiä kohteita.

Miten Fisher–Yates-sekoitusalgoritmi toimii?

Fisher–Yates-sekoitus käy luettelon läpi kerran viimeisestä kohteesta alkaen ja etenee kohti alkua. Jokaisessa vaiheessa se valitsee satunnaisesti yhden kohteen luettelon vielä sijoittamattomasta osasta ja vaihtaa sen nykyiseen sijaintiin.

Fisher–Yates-sekoituksen kaava

Kun luettelossa on n kohdetta, joiden sijainnit on numeroitu sijainnista 0 sijaintiin n − 1:

1for i from n − 1 down to 1:
2    choose a random whole number j, where 0 ≤ j ≤ i
3    swap the items at positions i and j
4

Silmukka suoritetaan n − 1 kertaa, joten sekoitus vie yhteensä noin n vaihetta. Tätä kutsutaan lineaariseksi ajaksi, ja se merkitään muodossa O(n). Koska algoritmi käsittelee jokaisen sijainnin täsmälleen kerran ja valitsee kohteet kutistuvasta, tarkasti määritellystä joukosta, jokaisella n!:n mahdollisella järjestyksellä (n:n kertoma: n × (n − 1) × ... × 1) on yhtä suuri todennäköisyys olla tulos.

Esimerkki: neljän kohteen luettelon sekoittaminen

Aloitetaan neljästä kohteesta sijainneissa 0–3: Apple, Banana, Cherry, Date.

  • i = 3: satunnaisvalinta on j = 0. Vaihdetaan sijainnit 3 ja 0 → Date, Banana, Cherry, Apple
  • i = 2: satunnaisvalinta on j = 2. Sijainnin vaihtaminen itsensä kanssa ei muuta mitään → Date, Banana, Cherry, Apple
  • i = 1: satunnaisvalinta on j = 0. Vaihdetaan sijainnit 1 ja 0 → Banana, Date, Cherry, Apple

Lopullinen järjestys: Banana, Date, Cherry, Apple.

Neljän kohteen tapauksessa mahdollisia järjestyksiä on 4! = 24. Jokaisella niistä, myös tällä järjestyksellä, on jokaisessa sekoituksessa 1 mahdollisuus 24:stä tulla valituksi.

Miksei vain vaihdeta satunnaisia pareja?

Yksinkertaisemmalta vaikuttava menetelmä — valitaan kaksi satunnaista sijaintia ja vaihdetaan ne keskenään useita kertoja — näyttää satunnaiselta, mutta ei ole sitä. Jotkin ensimmäisistä sekoitusohjelmista 1950-luvulla toimivat tällä tavalla, ja ne suosivat huomaamatta tiettyjä järjestyksiä muiden kustannuksella, vaikka yksikään yksittäinen suoritus ei näyttänyt epäilyttävältä. Fisher–Yates-sekoitus välttää tämän, koska jokainen kohde siirretään täsmälleen kerran sijaintiin, joka valitaan täsmällisesti kutistuvasta vaihtoehtojen joukosta. Näin jokainen lopullinen järjestys on yhtä todennäköinen.

Mistä Fisher–Yates-sekoitus on peräisin?

Tilastotieteilijät Ronald Fisher ja Frank Yates kuvasivat menetelmän 1938 tilastollisten taulukoiden kirjassa kokeiden suunnittelun yhteydessä tehtävää käsin sekoittamista varten. 1964 Richard Durstenfeld sovitti sen tietokoneille niin, että luettelo voitiin järjestää uudelleen paikallaan ilman, että tarvittiin toista luetteloa jäljelle jääneiden kohteiden seuraamiseen. Donald Knuth sisällytti tämän tietokoneversion 1969 kirjaansa The Art of Computer Programming, minkä vuoksi sitä kutsutaan joskus Knuthin sekoitukseksi. Verkkoselaimet käyttävät nykyään samaa algoritmia.

Listan satunnaissekoittimen yleisiä käyttötarkoituksia

  • Opiskelijoiden esitys- tai kysymysvastausjärjestyksen arpominen oppitunnilla
  • Turnauskaavion lähtöjärjestyksen tai pelin vuorojärjestyksen arpominen
  • Ryhmän jakaminen satunnaisiin joukkueisiin
  • Ravintolan, elokuvan tai tehtävän valitseminen lyhyestä luettelosta suosimatta mitään vaihtoehtoa

Tavallinen sekoitus ei aina ole sopivin ratkaisu. Jos joidenkin kohteiden pitää esiintyä useammin kuin toisten, painotettu valinta sopii paremmin. Jos jokaisesta luokasta tarvitaan taattu edustus, ositettu otanta toimii paremmin kuin yksi satunnainen sekoitus.

Usein kysyttyä

Onko sekoitus todella satunnainen?

Se perustuu verkkoselaimen pseudosatunnaislukugeneraattoriin (PRNG), kaavaan, joka tuottaa käytännössä satunnaiselta vaikuttavia lukusarjoja. Se riittää oppitunnin järjestysten, turnausten lähtöjärjestyksen tai elokuvan valitsemiseen. Sitä ei ole suunniteltu salaukseen, rahapelijärjestelmiin tai mihinkään, missä raha tai turvallisuus riippuu ennalta-arvaamattomuudesta; tällaisiin tarkoituksiin tarvitaan sertifioituja satunnaislukugeneraattoreita.

Lähettääkö työkalu luetteloni palvelimelle?

Sekoitus suoritetaan kokonaan selaimessa JavaScriptillä, joten luettelon uudelleenjärjestämiseen ei tarvita verkkopyyntöä. Nykyinen luettelo kirjoitetaan myös sivun verkko-osoitteeseen, joten uudelleenlataus tai kirjanmerkki ei kadota sitä. Jos osoite kopioidaan, jaetaan tai avataan uudelleen, luettelo kulkee sen mukana myös sille palvelimelle, joka myöhemmin lataa sivun. Älä lisää luetteloon arkaluonteisia tietoja, jos tällä on merkitystä.

Mitä päällekkäisille kohteille tapahtuu?

Päällekkäiset kohteet säilytetään. Jos ”Sam” esiintyy syötteessä kahdesti, se esiintyy edelleen kahdesti sekoitetussa tuloksessa, mahdollisesti eri sijainneissa.

Onko sekoitettavien kohteiden määrällä rajoitusta?

Työkaluun ei ole rakennettu rajoitusta. Koska sekoitus suoritetaan lineaarisessa ajassa, pitkätkin luettelot järjestetään uudelleen sekunnin murto-osassa kaikilla nykyaikaisilla laitteilla.

Miten sekoittaminen eroaa lajittelusta?

Lajittelu järjestää kohteet kiinteän säännön, kuten aakkosjärjestyksen, mukaan ja tuottaa aina saman tuloksen samalla syötteellä. Sekoitus järjestää kohteet satunnaisesti ja tuottaa lähes joka kerta erilaisen järjestyksen, vaikka syöte olisi täysin sama.

Voinko sekoittaa saman luettelon useammin kuin kerran?

Kyllä. Jokainen ”Listan satunnaistaminen” -napsautus suorittaa algoritmin uudelleen aiemmista sekoituksista riippumatta. Pienellä luettelolla saman järjestyksen toistuminen on sattumalta mahdollista; suuremmalla luettelolla se on erittäin epätodennäköistä.