Pemilih Nama Acak — Roda Putar, Pembagi Tim & Undian Adil
Tempelkan daftar nama dan putar roda warna-warni untuk memilih pemenang — atau beralih ke mode Pick-N untuk mengundi beberapa nama sekaligus, atau mode Tim untuk membagi semua orang ke dalam kelompok acak. Pemenang dapat dihapus dan roda diputar ulang untuk undian juara berikutnya. Karena undian berjalan sepenuhnya di perangkat Anda, tidak ada batasan baris sisi server: daftar berisi 10,000+ nama dapat diproses dengan lancar. Pemilihan menggunakan pengacakan Fisher–Yates dengan sumber generator kriptografi perangkat Anda dan rejection sampling, sehingga setiap nama memiliki peluang yang benar-benar sama — bukan sekadar perkiraan.
Kasus Penggunaan
Cara memilih nama acak dengan roda putar
Ketik atau tempel satu nama per baris — siswa, rekan tim, atau peserta undian. Daftar nama otomatis tersimpan di browser ini.
Klik Putar. Roda akan berputar cepat lalu melambat selama 4–6 detik, dan berhenti pada bagian yang dipilih secara acak melalui kriptografi.
Nama yang ditunjuk jarum akan muncul dalam kartu pemenang dan dicatat ke dalam daftar riwayat beserta stempel waktu.
Hapus pemenang dan putar ulang untuk juara kedua; beralih ke mode Pick-N untuk menarik beberapa nama berbeda sekaligus; atau beralih ke Tim untuk membagi semua nama ke dalam 2+ kelompok acak dengan ukuran seimbang lalu salin seluruh daftarnya.
Pertanyaan yang Sering Diajukan
- Apakah daftar nama saya diunggah ke suatu tempat?
- Tidak. Daftar nama hanya disimpan di penyimpanan lokal browser Anda — tidak ada yang dikirim ke server, dan menghapusnya akan melenyapkannya seutuhnya.
- Apakah roda putar ini benar-benar adil?
- Ya. Sudut pemberhentian ditentukan oleh crypto.getRandomValues — generator yang sama yang digunakan untuk kriptografi — dengan rejection sampling untuk menghindari bias modulo. Setiap bagian memiliki probabilitas yang persis sama.
- Berapa banyak nama yang bisa saya tambahkan?
- Tidak ada batasan bawaan. Pengundian adalah pemrosesan satu kali pada larik di browser Anda sendiri alih-alih permintaan server, sehingga 10,000+ nama dapat ditempel, diputar, dan diacak tanpa kendala — batas praktisnya adalah memori perangkat Anda, bukan batasan paket. Di atas beberapa ribu nama, juring roda menjadi terlalu tipis untuk dibaca, sehingga mode Pick-N atau Tim menjadi tampilan yang lebih ideal pada jumlah tersebut.
- Bagaimana cara membagi daftar menjadi tim acak?
- Beralih ke mode Tim, tentukan jumlah tim, lalu klik Bagi. Satu pengacakan Fisher–Yates dibagikan secara round-robin ke seluruh tim, menjamin setiap nama masuk tepat ke satu tim dan ukuran tim tidak pernah berselisih lebih dari satu orang. Mengundi berulang kali dalam mode putar tunggal tidak bisa melakukan ini — nama yang sama bisa terpilih dua kali.
- Bisakah orang yang sama menang dua kali?
- Hanya jika Anda membiarkan nama mereka tetap di roda. Gunakan "Hapus & putar ulang" setelah setiap putaran untuk menjamin pemenang yang berbeda di setiap putaran.
- Berapa banyak nama yang bisa dimuat di roda?
- Tidak ada batasan pasti. Teks tetap terbaca jelas hingga sekitar 30–40 nama; di atas itu, bagian roda menjadi sangat tipis — mode Pick-N menangani daftar besar dengan lebih baik.
- Apa perbedaan mode Pick-N?
- Mode ini melewati tampilan roda dan langsung memilih N nama berbeda sekaligus menggunakan salinan daftar yang diacak secara kriptografis — instan dan dijamin tanpa duplikasi dalam satu undian.
- Apakah daftar nama saya masih ada besok?
- Ya, selama menggunakan perangkat dan browser yang sama — daftar tersimpan di penyimpanan lokal antar-kunjungan. Data sengaja tidak disinkronkan ke perangkat lain demi privasi.
Apa yang membuat undian benar-benar adil (dan tiga hal yang membuatnya tidak adil)
Sebagian besar alat pemilih nama terasa acak tanpa benar-benar acak. Tiga kelemahan di bawah ini tidak terlihat dari luar — roda tetap berputar dan nama tetap muncul — itulah sebabnya undian untuk hal-hal penting harus menjelaskan metode yang digunakannya.
| Metode | Cara memilih | Bias | Kesimpulan |
|---|---|---|---|
| Math.random() % n | Menskalakan nilai floating-point, lalu mengambil sisa bagi | Bias modulo — indeks kecil muncul sedikit lebih sering, dan generator bukan standar kriptografi | Cukup untuk lempar koin, tidak untuk undian hadiah |
| Pengacakan naif (menukar setiap item dengan sembarang item lain) | Mengulang daftar sambil menukar pasangan secara acak | Terbukti tidak seragam: beberapa susunan urutan muncul lebih sering daripada yang lain | Kelihatannya adil, padahal tidak |
| Pengacakan Fisher–Yates / Durstenfeld | Menelusuri daftar dari belakang, menukar setiap item dengan item pada atau sebelum posisinya | Tidak ada — setiap permutasi memiliki peluang yang sama persis | Algoritma yang tepat sejak 1964 |
| crypto.getRandomValues dengan rejection sampling | Mengambil byte dari pool entropi OS dan membuang nilai yang membuat rentang menjadi timpang | Tidak ada, dan tidak dapat diprediksi meski mengetahui hasil undian sebelumnya | Metode yang digunakan alat ini |
- Rejection sampling adalah bagian yang sering dilewati kebanyakan implementasi: jika Anda memetakan 256 nilai byte acak ke daftar berisi 10 nama, 6 nama pertama akan sedikit lebih sering menang. Membuang sisa di luar rentang itulah yang menghilangkan bias tersebut.
- Kapasitas di sini dibatasi oleh browser Anda, bukan kuota server — daftar berisi 10,000+ nama dapat ditempel dan diundi dengan lancar, karena seluruh undian adalah proses satu kali pembacaan larik.
- Menghapus pemenang lalu memutar ulang memberi Anda undian juara kedua yang sebenarnya. Sebaliknya, mode Pick-N memilih beberapa nama berbeda dalam satu pengacakan, yang merupakan metode tepat untuk membagi kelas menjadi beberapa tim — undian tunggal berulang bisa memunculkan nama yang sama kecuali jika dihapus setiap putaran.
Privasi terjaga secara bawaan. Nama diundi sepenuhnya di browser Anda dan daftar hanya disimpan di penyimpanan lokal browser ini — tidak ada yang dikirim ke server.