Pengacak Pembagi Tim

Bagi daftar nama menjadi tim acak dengan pengocokan Fisher-Yates yang adil secara kriptografis. Semuanya berjalan di browser Anda.

Pengundian terjadi secara lokal di browser Anda. Daftar nama tidak meninggalkan perangkat.

Tiap baris adalah satu orang; baris kosong diabaikan.

Cara kerja

Ketik satu nama per baris, pilih jumlah tim (2–10) atau ukuran tim tetap, dan alat langsung membagikan kelompoknya: daftar dikocok dulu, lalu dilalui melingkar sehingga tiap orang mengambil satu kartu. Setiap perubahan — nama, mode, angka — membagikan ulang seketika, dan tombol Acak ulang menghasilkan susunan yang sepenuhnya baru.

Fisher-Yates dengan Web Crypto
Pengocokan memakai algoritma klasik Fisher-Yates (Knuth): array dilalui sekali dan tiap posisi ditukar dengan posisi sebelumnya yang dipilih seragam. Keacakannya datang dari crypto.getRandomValues dengan rejection sampling — nilai yang akan mendistorsi distribusi di bagian atas rentang 32 bit dibuang dan diulang — sehingga undiannya tidak bias secara kriptografis.
Pembagian round-robin
Setelah dikocok, nama 1 masuk tim 1, nama 2 ke tim 2, dan seterusnya berputar. Karena urutan dek sudah acak, pembagian rotasi tetap menghasilkan kelompok yang tak terprediksi satu per satu namun sama besar sejauh angkanya memungkinkan: tidak ada tim yang bisa punya dua orang lebih banyak dari tim lain.
Mengapa kocok-lalu-bagi lebih baik daripada memilih
Menarik orang ke tim satu per satu dengan pilihan acak baru cenderung menghasilkan ukuran yang tidak seimbang dan bergantung pada urutan pengisian tim. Satu pengocokan tanpa bias diikuti pembagian melingkar menghilangkan kedua masalah itu — persis seperti membagikan kartu sungguhan.

Pertanyaan yang sering diajukan

Apakah pengacakannya benar-benar adil?

Ya. Nama dibagikan dengan pengocokan Fisher-Yates yang digerakkan crypto.getRandomValues — sumber acak kriptografis browser — sehingga setiap permutasi sama mungkin, dan bilangan acaknya diambil dengan rejection sampling untuk menghindari bias modulo pada jalan pintas. Setelah dikocok, pembagian round-robin menjamin selisih ukuran tim paling banyak satu orang.

Bagaimana mode anggota per tim bekerja?

Anda menetapkan ukuran tim dan alat menghitung berapa tim yang dihasilkan: 11 nama dengan tim berisi 4 menjadi 3 tim, tim terakhir membawa sisanya. Mode jumlah tim bekerja sebaliknya — Anda menetapkan jumlahnya dan ukuran tiap tim dibuat sealami mungkin.

Bagaimana jika ada dua orang dengan nama sama?

Alat tetap bekerja — nama duplikat diperlakukan sebagai orang berbeda karena tiap baris adalah satu entri — tetapi muncul peringatan agar Anda memastikan itu bukan salah tempel. Jika memang kembar, tambahkan inisial atau ID pendek (Sam K, Sam R) supaya daftar timnya tidak ambigu.

Bisakah saya mengunci orang ke suatu tim atau membatalkan pengundian?

Tidak. Tidak ada kunci, riwayat, maupun penyimpanan: tiap acak ulang adalah undian baru yang independen, dan susunan sebelumnya hilang begitu Anda mengacak lagi. Jika hasilnya bagus, salin dulu sebelum mengacak ulang.

Apakah ada yang diunggah ke server?

Tidak. Pengocokan hanyalah JavaScript murni dengan API Web Crypto yang berjalan di tab browser Anda. Daftar nama tidak pernah meninggalkan perangkat dan tidak ada yang disimpan — memuat ulang halaman menghapusnya.