CodeKitHub
Bahasa Indonesia
Alat Generator

Pengacak Daftar Gratis

Tempel sebuah daftar — nama, tugas, peserta undian, apa saja — satu item per baris, dan acak menjadi urutan yang adil menggunakan algoritma Fisher-Yates yang benar. Aktifkan mode pemilih pemenang untuk mengambil hanya N item secara acak, berguna untuk memilih pemenang giveaway atau menetapkan urutan acak tanpa menampilkan seluruh daftar yang sudah diacak.

Apa Itu Alat Ini?

Pengacak daftar menyusun ulang sekumpulan item menjadi urutan acak, atau mengambil subset acak darinya. Bagian tersulitnya adalah melakukannya tanpa bias: pendekatan naif seperti mengurutkan array dengan fungsi perbandingan acak menghasilkan distribusi yang miring, di mana beberapa urutan jauh lebih mungkin muncul daripada yang lain.

Alat ini menggunakan algoritma Fisher–Yates (Durstenfeld) shuffle, metode standar untuk menghasilkan permutasi acak yang terbukti seragam — setiap kemungkinan urutan dari daftar Anda memiliki peluang yang sama untuk muncul.

Mengapa Menggunakannya?

  • Pengacakan yang benar-benar tidak bias — Fisher–Yates, bukan anti-pattern umum sort(() => Math.random() - 0.5) yang membuat hasil menjadi miring.
  • Mode pemilih pemenang: ambil tepat N item secara acak alih-alih mengacak seluruh daftar, ideal untuk undian dan giveaway.
  • Penghapusan duplikat opsional sebelum diacak, untuk daftar yang mungkin memiliki pengulangan yang tidak disengaja.
  • Bekerja dengan teks apa pun — nama, tugas, tiket, hadiah — satu item per baris.
  • Privat: pengacakan sepenuhnya terjadi di browser Anda, tidak ada yang diunggah.

Cara Menggunakan

  1. Tempel daftar Anda ke kotak, satu item per baris.
  2. Opsional, centang "hapus duplikat sebelum diacak" jika daftar mungkin mengandung pengulangan.
  3. Untuk mengacak ulang seluruh daftar, cukup klik Shuffle. Untuk memilih pemenang, centang opsi N-item dan atur berapa banyak yang akan diambil.
  4. Salin hasilnya — klik Shuffle lagi kapan saja untuk urutan acak baru atau pengambilan baru.

Contoh

Input

Alice
Bob
Charlie
Diana
Ethan

Output

Daftar yang diacak secara acak seperti Charlie, Ethan, Alice, Diana, Bob — berbeda setiap kali Anda klik Shuffle.

Dengan mode pemilih pemenang diatur ke 2, input yang sama bisa menghasilkan hanya Ethan dan Alice — pengambilan acak 2 item, bukan potongan 2 item dari satu urutan yang diacak.

Mengapa pengacakan naif menghasilkan hasil yang bias

sort(() => Math.random() - 0.5) adalah trik umum yang terlihat benar tetapi sebenarnya tidak: caranya bergantung pada algoritma sort yang memanggil komparator dengan jumlah dan pola tertentu, dan implementasi sort di dunia nyata tidak menjamin hal itu. Efek praktisnya adalah pengacakan di mana urutan tertentu muncul lebih sering daripada yang lain — cukup halus untuk lolos dari sekilas pandang, tetapi terukur secara statistik dalam banyak percobaan.

Fisher–Yates menghindari seluruh masalah ini: alih-alih meminta algoritma sort menghasilkan keacakan secara tidak langsung, algoritma ini langsung menukar setiap posisi dengan posisi acak yang tersisa tepat satu kali, yang terbukti seragam terlepas dari implementasi sort bahasa pemrograman yang mendasarinya.

Generator Angka Acak · Generator UUID

Pertanyaan yang Sering Diajukan

Mengapa tidak cukup menggunakan array.sort(() => Math.random() - 0.5)?

Satu baris kode itu adalah anti-pattern yang sudah dikenal: sort() di JavaScript tidak menjamin setiap pasangan elemen dibandingkan dengan jumlah yang sama, sehingga urutan hasilnya terbukti bias terhadap permutasi tertentu — beberapa item cenderung berakhir lebih dekat ke awal atau akhir daripada yang seharusnya dihasilkan oleh keacakan sejati. Fisher–Yates sepenuhnya menghindari ini secara konstruksi, dan itulah algoritma yang benar-benar diterapkan alat ini.

Apakah urutan pengacakan benar-benar tidak bias?

Ya. Fisher–Yates menelusuri daftar satu kali, dan di setiap langkah menukar item saat ini dengan item acak yang seragam dari bagian yang belum diacak. Ini secara matematis terbukti menghasilkan setiap kemungkinan urutan dengan probabilitas yang sama, asalkan sumber keacakannya baik (Math.random() milik JavaScript).

Apa perbedaan antara mode acak dan mode pemilih pemenang?

Mode Shuffle mengurutkan ulang setiap item dalam daftar Anda dan menampilkan semuanya, hanya dalam urutan baru. Mode pemilih pemenang hanya mengambil N item secara acak dan menampilkan item tersebut saja — berguna saat Anda ingin memilih sejumlah pemenang atau sampel tertentu tanpa menampilkan seluruh daftar yang sudah diacak.

Bisakah saya menggunakan ini untuk undian atau pengundian hadiah sungguhan?

Ya, untuk giveaway dan undian informal ini bekerja dengan baik karena keacakannya benar-benar seragam. Untuk undian berhadiah yang diatur secara hukum dengan hadiah uang, periksa regulasi lokal Anda — beberapa wilayah mengharuskan proses pengundian tertentu yang bisa diaudit.

Apakah menghapus duplikat mengubah daftar asli saya?

Tidak — deduplikasi hanya memengaruhi hasil yang sudah diacak, dan hanya saat kotak centang diaktifkan. Daftar input Anda tetap persis seperti yang Anda ketik, sehingga Anda bisa mengaktifkan/menonaktifkan opsi dan mengacak ulang tanpa mengetik ulang apa pun.

Alat Terkait