Τυχαία επιλογή από λίστα

Επικολλήστε οποιαδήποτε λίστα — ονόματα, εργασίες ή ιδέες — και αφήστε το εργαλείο να κάνει μια δίκαιη τυχαία επιλογή. Η κλήρωση γίνεται τοπικά στον browser σας, χωρίς τα δεδομένα να εγκαταλείπουν τη συσκευή σας.

Πατήστε Δημιουργία για κλήρωση
Το διαχωριστικό ανιχνεύεται αυτόματα, αλλά μπορείτε να το επιλέξετε χειροκίνητα παρακάτω.
Σύνθετες επιλογές

Θέλετε να αναδείξετε τον νικητή ενός διαγωνισμού, να σηκώσετε έναν μαθητή στον πίνακα ή να λύσετε τη διαφωνία για το ποιος θα πετάξει τα σκουπίδια; Αυτό το δωρεάν διαδικτυακό εργαλείο κάνει μια δίκαιη τυχαία επιλογή από οποιαδήποτε λίστα επικολλήσετε. Τοποθετήστε τις εγγραφές σας στο πλαίσιο «Στοιχεία» — μία ανά γραμμή ή χωρισμένες με κόμμα — ορίστε πόσα αποτελέσματα θέλετε στο «Πλήθος» και πατήστε «Δημιουργία». Η λίστα χρειάζεται τουλάχιστον δύο εγγραφές και χωράει έως 1000 στοιχεία, με μέγιστο μήκος 200 χαρακτήρες το καθένα.

Κάθε κλήρωση πραγματοποιείται απευθείας στο πρόγραμμα περιήγησής σας, χρησιμοποιώντας το Web Crypto API (crypto.getRandomValues), το οποίο παρέχει κρυπτογραφικά ισχυρές τυχαίες τιμές αντλώντας από το λειτουργικό σας σύστημα. Η λίστα σας δεν αποστέλλεται ποτέ σε κάποιον διακομιστή, δεν καταγράφεται και δεν την βλέπουμε ποτέ — κάτι που έχει μεγαλύτερη σημασία εδώ σε σχέση με άλλες γεννήτριες, αφού συνήθως οι χρήστες επικολλούν πελατολόγια, απουσιολόγια ή ονόματα συναδέλφων. Το κουμπί «Φόρτωση από αρχείο» τηρεί ακριβώς την ίδια υπόσχεση: ο browser σας διαβάζει το αρχείο και γεμίζει το πλαίσιο τοπικά, χωρίς να μεταφορτώνεται τίποτα στο διαδίκτυο.

Οι επιλογές έχουν σχεδιαστεί για τις λίστες που έχουν πραγματικά οι χρήστες. Η ρύθμιση «Διαχωριστικό» βρίσκεται στο «Αυτόματα», το οποίο ξεχωρίζει τις αλλαγές γραμμής από τα κόμματα και αναγνωρίζει ποιο από τα δύο χρησιμοποιεί η δική σας λίστα, ώστε τα δεδομένα που αντιγράφετε από ένα λογιστικό φύλλο, ένα μήνυμα ή ένα έγγραφο να λειτουργούν χωρίς καμία μορφοποίηση από εσάς. Κλειδώστε το στο «Νέα γραμμή», στο «Κόμμα» ή στο «Κενό» όταν τα δεδομένα σας αναμειγνύουν διαφορετικές μορφές — σημειώνοντας ότι η επιλογή «Κενό» είναι πάντα σκόπιμη και ποτέ αυτόματη, επειδή εγγραφές όπως τα ονοματεπώνυμα περιέχουν κενά από μόνα τους και ο αυτόματος διαχωρισμός τους θα κατέστρεφε περισσότερες λίστες από όσες θα έφτιαχνε. Το πεδίο «Πλήθος» καθορίζει πόσες εγγραφές θα κληρωθούν, από 1 έως 100. Κληρώνετε τρεις νικητές ανάμεσα σε 200 συμμετέχοντες; Επικολλήστε τους, ορίστε το «Πλήθος» σε 3 και πατήστε «Δημιουργία». Δύο ρυθμίσεις έχουν εφαρμογή μόνο όταν το πλήθος είναι 2 ή περισσότερο και μέχρι τότε παραμένουν ανενεργές: ο διακόπτης «Χωρίς επαναλήψεις», ο οποίος καθορίζει αν η ίδια εγγραφή μπορεί να κληρωθεί δύο φορές, και η «Μορφή εξόδου», η οποία ορίζει πώς διαχωρίζονται οι επιλογές μεταξύ τους — «Ένα ανά γραμμή», «Διαχωρισμένα με κενό» ή «Διαχωρισμένα με κόμμα».

Μια σειρά κουμπιών μέσα στο πλαίσιο «Στοιχεία» αναλαμβάνει την επεξεργασία που αλλιώς θα κάνατε κάπου αλλού. Η «Φόρτωση από αρχείο» τραβάει μια λίστα κατευθείαν από ένα απλό αρχείο κειμένου ή CSV. Το «Ανακάτεμα» αλλάζει τη σειρά των εγγραφών μέσα στο πλαίσιο, η «Ταξινόμηση» τις βάζει σε αλφαβητική σειρά με τους αριθμούς σε φυσική ακολουθία, ενώ ένα δεύτερο κλικ την αντιστρέφει, και ο «Καθαρισμός» αδειάζει τελείως το πλαίσιο. Η επιλογή «Συμπληρώστε με δείγματα δεδομένων» εισάγει μια σύντομη ενδεικτική λίστα για να δοκιμάσετε το εργαλείο με ένα κλικ. Η επιλογή «Ανάπτυξη για να ταιριάζει με το περιεχόμενο» μεγαλώνει το πλαίσιο για να φανεί ολόκληρη μια μεγάλη λίστα και η «Σύμπτυξη στο προεπιλεγμένο μέγεθος» το επαναφέρει. Κάτω από το αποτέλεσμα, η «Αντιγραφή όλων» βάζει κάθε επιλογή στο πρόχειρο, η «Αποθήκευση σε αρχείο» τις αποθηκεύει στη συσκευή σας και το «Ιστορικό» κρατάει τις τελευταίες 10 κληρώσεις στον browser σας, κάνοντας ένα παλαιότερο αποτέλεσμα προσβάσιμο με ένα κλικ.

Πώς γίνεται στην πραγματικότητα η επιλογή; Όταν πατάτε «Δημιουργία», η σελίδα ζητάει από τον browser τυχαίες τιμές μέσω του crypto.getRandomValues και τις χρησιμοποιεί για να διαλέξει θέσεις στη λίστα σας, αντί να βασιστεί στην ψευδοτυχαία συνάρτηση Math.random() της JavaScript. Η μετατροπή μιας ακατέργαστης τιμής 32-bit σε θέση είναι το σημείο όπου οι αλγόριθμοι συχνά κάνουν λάθος χωρίς να γίνεται αντιληπτό: η διαίρεση modulo της τιμής με το μήκος της λίστας είναι η προφανής και ταυτόχρονα η μεροληπτική προσέγγιση. Ο λόγος είναι ότι, εκτός αν το μήκος διαιρεί ακριβώς το 2^32, οι εγγραφές στην αρχή της λίστας εμφανίζονται ελαφρώς συχνότερα από τις υπόλοιπες. Αυτό το ψεγάδι ονομάζεται modulo bias (μεροληψία υπολοίπου) και είναι απολύτως μετρήσιμο, όχι θεωρητικό. Αυτό το εργαλείο, αντίθετα, απορρίπτει οποιαδήποτε τιμή ξεπερνά το μεγαλύτερο ακριβές πολλαπλάσιο του μήκους της λίστας και κληρώνει ξανά — μια τεχνική γνωστή ως rejection sampling (δειγματοληψία με απόρριψη). Κοστίζει μερικές επιπλέον κληρώσεις στο παρασκήνιο, αλλά προσφέρει μια απόλυτα ακριβή εγγύηση αντί για κατά προσέγγιση. Η θέση στη λίστα δεν αλλάζει απολύτως τίποτα: η πρώτη και η τελευταία εγγραφή έχουν την ίδια ακριβώς πιθανότητα σε κάθε κλήρωση.

Ο διακόπτης «Χωρίς επαναλήψεις» διαχωρίζει δύο εντελώς διαφορετικά είδη κλήρωσης, τα οποία έχουν ξεχωριστά ονόματα στη στατιστική. Όταν είναι ενεργοποιημένος, το εργαλείο ανακατεύει ένα αντίγραφο της λίστας σας μέσω του αλγορίθμου Fisher-Yates και τραβάει τις εγγραφές από την κορυφή — ακριβώς όπως τραβάμε κλήρους από ένα καπέλο χωρίς να τους βάζουμε πίσω, οπότε κανείς δεν κληρώνεται δύο φορές και κάθε ομάδα αυτού του μεγέθους είναι εξίσου πιθανή. Αυτό ονομάζεται δειγματοληψία χωρίς επαναφορά (sampling without replacement) και είναι αυτό ακριβώς που χρειάζεστε για νικητές δώρων, σχηματισμό ομάδων και σειρά προτεραιότητας. Όταν είναι απενεργοποιημένος, η κάθε επιλογή γίνεται ανεξάρτητα από ολόκληρη τη λίστα, άρα η ίδια εγγραφή μπορεί να εμφανιστεί περισσότερες από μία φορές — αυτό είναι η δειγματοληψία με επαναφορά (sampling with replacement), η οποία χρειάζεται όταν όλοι παραμένουν υποψήφιοι σε κάθε γύρο, όπως σε απανωτές κληρώσεις ή σε ένα γρήγορο στατιστικό δείγμα. Κανένας από τους δύο τρόπους δεν είναι πιο δίκαιος από τον άλλον· απλώς απαντούν σε διαφορετικές ανάγκες.

Μια δίκαιη κλήρωση δεν υποτίθεται ότι δείχνει δίκαιη. Κληρώστε πέντε ονόματα από τα δέκα και θα δείτε συχνά δύο επιλογές που ήταν δίπλα-δίπλα στην αρχική λίστα, ή το ίδιο όνομα δύο φορές στη σειρά εφόσον επιτρέπονται οι επαναλήψεις — και καθεμία από αυτές τις περιπτώσεις είναι εντελώς φυσιολογική. Η κάθε κλήρωση είναι ανεξάρτητη: οι προηγούμενες επιλογές δεν έχουν καμία απολύτως επιρροή στις επόμενες, και κανένα στοιχείο δεν έρχεται η «σειρά» του να κερδίσει απλώς επειδή πέρασε ώρα. Το ένστικτο που επιμένει για το αντίθετο είναι η πλάνη του τζογαδόρου (gambler's fallacy) και είναι το ίδιο ένστικτο που μας κάνει κακούς στο να επιλέγουμε εμείς οι ίδιοι τυχαία — όταν μας ζητούν να διαλέξουμε στην τύχη, αποφεύγουμε την πρώτη και την τελευταία εγγραφή, προσπαθούμε να μην επαναλάβουμε όνομα και κατανέμουμε τις επιλογές μας πολύ πιο ομοιόμορφα από ό,τι η πραγματική τύχη. Ένα αποτέλεσμα που φαίνεται ύποπτα τακτοποιημένο είναι το αποτύπωμα του ανθρώπου· η πραγματική τυχαιότητα δημιουργεί συσσωρεύσεις.

Γιατί να επιλέξετε αυτό το εργαλείο τυχαίας επιλογής;

Η τυχαία επιλογή εμφανίζεται παντού όπου μια απόφαση πρέπει να αντέξει την αμφισβήτηση. Οι εκπαιδευτικοί εξετάζουν μαθητές χωρίς να δείχνουν εύνοια και χωρίζουν την τάξη σε ομάδες για εργασίες. Streamers και marketers κληρώνουν νικητές διαγωνισμών μπροστά σε κοινό που πρέπει να πιστέψει στο αποτέλεσμα. Οι μάνατζερ μοιράζουν τις αγγαρείες για τις οποίες κανείς δεν προσφέρεται, και οι ομάδες αποφασίζουν τη σειρά των παρουσιάσεων. Οι ερευνητές αντλούν ένα τυχαίο δείγμα αρχείων για έλεγχο. Οι παρέες λύνουν τη διαφωνία για το ποια ταινία θα δουν, και αποφασίζουν σε ποια ταβέρνα θα πάνε. Το κοινό στοιχείο είναι μια επιλογή που ο καθένας μπορεί να εξηγήσει εκ των υστέρων: η κλήρωση χρησιμοποιεί κρυπτογραφική τυχαιότητα, γίνεται εξ ολοκλήρου στη συσκευή σας και το «Ιστορικό» διατηρεί το αποτέλεσμα αν κάποιος ρωτήσει γι' αυτό αργότερα.

Αυτό το εργαλείο έχει μερικούς ειλικρινείς περιορισμούς που αξίζει να γνωρίζετε. Δεν μπορεί να κληρώσει περισσότερες μοναδικές εγγραφές από όσες περιέχει η λίστα σας — τρεις νικητές χρειάζονται τουλάχιστον τρία ονόματα — και σταματά στα 1000 στοιχεία των 200 χαρακτήρων το καθένα, με έως 100 επιλογές ανά κλήρωση. Το «Ανακάτεμα» και η «Ταξινόμηση» λειτουργούν ανά γραμμή, επομένως μια λίστα χωρισμένη με κόμματα σε μία μόνο γραμμή θα αναδιαταχθεί μόνο αν χωριστεί σε ένα στοιχείο ανά γραμμή. Και τα δύο αλλάζουν τη διάταξη μέσα στο πλαίσιο και όχι την ίδια την κλήρωση, η οποία είναι εξίσου δίκαιη όποια κι αν είναι η σειρά των εγγραφών. Κάθε εγγραφή φέρει επίσης ακριβώς το ίδιο βάρος από τη σχεδίαση, οπότε μια κλήρωση όπου ένα όνομα πρέπει να μετράει διπλό απαιτεί να γραφτεί το όνομα αυτό δύο φορές. Μέσα σε αυτά τα όρια η εγγύηση είναι ισχυρή — κάθε εγγραφή στη λίστα σας έχει ακριβώς την ίδια πιθανότητα, σε κάθε μεμονωμένη κλήρωση.

FAQ

Πώς μπορώ να διαλέξω ένα τυχαίο όνομα από μια λίστα;

Επικολλήστε τα ονόματα στο πλαίσιο «Στοιχεία» — ένα ανά γραμμή, ή χωρισμένα με κόμματα ή κενά — αφήστε το «Πλήθος» στο 1 και πατήστε «Δημιουργία». Ένα όνομα κληρώνεται αμέσως. Για να βγάλετε πολλά ονόματα ταυτόχρονα, αυξήστε το πεδίο «Πλήθος» στον αριθμό που χρειάζεστε.

Είναι η επιλογή πραγματικά δίκαιη;

Ναι. Κάθε κλήρωση χρησιμοποιεί το Web Crypto API του browser σας (crypto.getRandomValues) σε συνδυασμό με τη μέθοδο rejection sampling (δειγματοληψία με απόρριψη), η οποία αφαιρεί το modulo bias που θα εισήγαγε μια απλοϊκή υλοποίηση. Κάθε στοιχείο έχει ακριβώς την ίδια πιθανότητα ανεξάρτητα από τη θέση του, και η κλήρωση πολλών διαφορετικών εγγραφών χρησιμοποιεί ένα ανακάτεμα Fisher-Yates, ώστε κάθε ομάδα αυτού του μεγέθους να είναι εξίσου πιθανή.

Μεταφορτώνεται η λίστα μου στον διακομιστή σας;

Όχι. Ολόκληρη η διαδικασία τρέχει τοπικά στον browser σας: η λίστα, οι επιλογές και το ιστορικό δεν εγκαταλείπουν ποτέ τη συσκευή σας, επομένως είναι ασφαλές να επικολλήσετε ονόματα, email ή οποιαδήποτε ιδιωτική λίστα. Η «Φόρτωση από αρχείο» είναι επίσης τοπική — ο browser διαβάζει ο ίδιος το αρχείο και δεν μεταφορτώνεται απολύτως τίποτα.

Μπορώ να επικολλήσω μια λίστα χωρισμένη με κόμματα ή κενά αντί για ένα στοιχείο ανά γραμμή;

Ναι. Το «Διαχωριστικό» είναι ρυθμισμένο στο «Αυτόματα», το οποίο ξεχωρίζει από μόνο του τις αλλαγές γραμμής από τα κόμματα, έτσι μια λίστα αντιγραμμένη από Excel, chat ή Word λειτουργεί ως έχει. Μια λίστα χωρισμένη με κενά χρειάζεται ένα επιπλέον βήμα — ορίστε το «Διαχωριστικό» σε «Κενό» — επειδή στοιχεία όπως τα ονοματεπώνυμα περιέχουν και τα ίδια κενά και δεν διαχωρίζονται ποτέ αυτόματα σε αυτά. Κλειδώστε το «Διαχωριστικό» στο «Νέα γραμμή» ή στο «Κόμμα» αν τα δεδομένα σας αναμειγνύουν διαφορετικές μορφές.

Τι κάνει ο διακόπτης «Χωρίς επαναλήψεις»;

Με το «Χωρίς επαναλήψεις» ενεργοποιημένο, κάθε στοιχείο που κληρώνεται είναι διαφορετικό — όπως όταν τραβάτε κλήρους από ένα καπέλο χωρίς να τους βάζετε πίσω, κάτι που θέλετε όταν βγάζετε νικητές ή ομάδες. Όταν είναι απενεργοποιημένο, η ίδια εγγραφή μπορεί να επιλεγεί περισσότερες από μία φορές, κάτι που οι στατιστικολόγοι ονομάζουν δειγματοληψία με επαναφορά.

Γιατί οι επιλογές «Χωρίς επαναλήψεις» και «Μορφή εξόδου» είναι απενεργοποιημένες;

Επειδή και οι δύο εφαρμόζονται μόνο όταν κληρώνετε περισσότερες από μία εγγραφές, όπως αναφέρει η υπόδειξη δίπλα τους: «Ισχύει μόνο όταν το πλήθος είναι μεγαλύτερο από 1.» Αυξήστε το «Πλήθος» σε 2 ή περισσότερο και θα γίνουν διαθέσιμες· όταν το πλήθος είναι 1, δεν υπάρχει τίποτα για να επαναληφθεί ή να διαχωριστεί.

Σε τι χρησιμεύει η «Μορφή εξόδου»;

Καθορίζει πώς εμφανίζονται και αντιγράφονται οι πολλαπλές επιλογές: «Ένα ανά γραμμή», «Διαχωρισμένα με κενό» για ένα γρήγορο μήνυμα σε chat, ή «Διαχωρισμένα με κόμμα» για επικόλληση σε λογιστικό φύλλο ή script. Γίνεται διαθέσιμη μόλις το «Πλήθος» γίνει 2 ή μεγαλύτερο.

Τι κάνουν τα κουμπιά «Ανακάτεμα» και «Ταξινόμηση»;

Το «Ανακάτεμα» αλλάζει τη σειρά των εγγραφών μέσα στο πλαίσιο «Στοιχεία», και η «Ταξινόμηση» τις διατάσσει αλφαβητικά με φυσική αρίθμηση — πατώντας ξανά την ταξινόμηση αντιστρέφεται η σειρά. Και τα δύο αλλάζουν τον τρόπο που είναι γραμμένη η λίστα σας, όχι τον τρόπο που λειτουργεί η κλήρωση: η επιλογή είναι το ίδιο δίκαιη όποια κι αν είναι η σειρά των στοιχείων.

Πόσα στοιχεία μπορεί να περιέχει η λίστα και πόσα μπορώ να κληρώσω ταυτόχρονα;

Η λίστα χωράει από 2 έως 1000 εγγραφές, καθεμία έως 200 χαρακτήρες, και μία κλήρωση επιστρέφει έως 100 επιλογές. Οι κενές γραμμές και τα κενά στα άκρα αγνοούνται, οπότε μια λίστα που επικολλάται από ένα Excel ή Word δουλεύει ακριβώς όπως είναι.

Είναι κατάλληλο για επιλογή νικητών σε διαγωνισμούς και κληρώσεις δώρων;

Ναι, και είναι μία από τις πιο κοινές χρήσεις του. Επικολλήστε τους συμμετέχοντες, ορίστε το «Πλήθος» στον αριθμό των δώρων, κρατήστε το «Χωρίς επαναλήψεις» ενεργοποιημένο για να μην κερδίσει κανείς δύο φορές και πατήστε «Δημιουργία». Επειδή η κλήρωση χρησιμοποιεί κρυπτογραφικά ασφαλή τυχαιότητα και εκτελείται εξ ολοκλήρου στη συσκευή σας, η διαδικασία εξηγείται εύκολα, ενώ το «Ιστορικό» διατηρεί το αποτέλεσμα αν κάποιος συμμετέχων το αμφισβητήσει αργότερα.

Μπορώ να το χρησιμοποιήσω για να χωρίσω άτομα σε ομάδες;

Ναι. Ορίστε το «Πλήθος» στο μέγεθος της πρώτης ομάδας και πατήστε «Δημιουργία» — τα ονόματα που επιλέχθηκαν είναι η πρώτη ομάδα. Αφαιρέστε τα από τη λίστα και επαναλάβετε για την επόμενη. Διατηρήστε το «Χωρίς επαναλήψεις» ενεργοποιημένο ώστε να μην καταλήξει κανείς σε δύο ομάδες ταυτόχρονα.

Γιατί κληρώθηκε το ίδιο όνομα δύο φορές στη σειρά;

Επειδή οι ανεξάρτητες κληρώσεις επαναλαμβάνονται και έτσι ακριβώς μοιάζει η τυχαιότητα. Κάθε κλήρωση αγνοεί όλες τις προηγούμενες, επομένως σε μια λίστα δέκα ονομάτων η εμφάνιση του ίδιου ονόματος δύο φορές στη σειρά έχει 1 στις 10 πιθανότητες κάθε φορά — είναι απολύτως συνηθισμένο, όχι λάθος. Ενεργοποιήστε το «Χωρίς επαναλήψεις» αν χρειάζεστε κάθε επιλογή σε μια κλήρωση να είναι διαφορετική.

Θυμάται το εργαλείο τις επιλογές μου, και είναι δωρεάν;

Το «Ιστορικό» κρατάει τις τελευταίες 10 κληρώσεις στον δικό σας browser, ώστε να μπορείτε να επαναφέρετε, να αντιγράψετε ή να διαγράψετε ένα προηγούμενο αποτέλεσμα, καθώς και να καθαρίσετε όλη τη λίστα όποτε θέλετε. Το εργαλείο είναι εντελώς δωρεάν, χωρίς εγγραφή, και επειδή δεν μεταδίδεται τίποτα, δεν θα μπορούσαμε να δούμε ή να αποθηκεύσουμε τις επιλογές σας ακόμα κι αν το θέλαμε.