Lewati ke konten

Pengacak Daftar Acak - Alat Pengacak Daftar Daring Gratis

Pengacak daftar acak gratis menggunakan algoritma Fisher-Yates yang terbukti. Acak nama, siswa, tim, atau tugas secara instan. Sempurna untuk guru, turnamen, dan keputusan tidak memihak. Tidak perlu mendaftar.

Pengacak Daftar Acak

Masukkan item untuk diacak, satu per baris. Baris kosong akan dihapus secara otomatis.

Kalkulator pemuatan...
📚

Dokumentasi

Apa itu pengacak daftar?

Pengacak daftar acak adalah alat yang menerima daftar item dan menyusunnya kembali dalam urutan baru secara acak. Masukkan nama, tugas, atau apa pun lainnya, satu per baris, dan alat ini akan menyusunnya ulang sehingga setiap kemungkinan urutan memiliki peluang yang sama untuk muncul. Alat ini menggunakan pengacakan Fisher–Yates, algoritme terkenal untuk menghasilkan urutan acak yang tidak bias.

Cara menggunakan pengacak daftar acak

  1. Ketik atau tempel daftar ke dalam kotak, satu item per baris.
  2. Klik "Acak Daftar". Item akan langsung disusun ulang.
  3. Baca daftar yang telah diacak di bawah tombol, yang diberi nomor sesuai urutan barunya.
  4. Klik "Acak Daftar" lagi untuk melakukan pengacakan baru yang independen.
  5. Klik "Salin Hasil" untuk menyalin urutan baru, atau "Hapus" untuk memulai kembali.

Baris kosong dalam input dihapus secara otomatis, sehingga jeda baris tambahan tidak akan membuat entri kosong dalam hasil.

Bagaimana cara kerja algoritme pengacakan Fisher-Yates?

Pengacakan Fisher–Yates melewati daftar satu kali, dimulai dari item terakhir dan bergerak ke bagian depan. Pada setiap langkah, algoritme ini memilih satu item secara acak dari bagian daftar yang belum ditempatkan, lalu menukarnya ke posisi saat ini.

Rumus pengacakan Fisher-Yates

Untuk daftar yang terdiri dari n item, dengan penomoran dari posisi 0 hingga posisi 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

Perulangan berjalan sebanyak n − 1 kali, sehingga secara keseluruhan pengacakan memerlukan sekitar n langkah. Ini disebut waktu linear, ditulis O(n). Karena algoritme mempertimbangkan setiap posisi tepat satu kali dan mengambil item dari kumpulan yang menyusut secara teratur, setiap dari n! (faktorial n: n × (n − 1) × ... × 1) kemungkinan urutan memiliki peluang yang sama untuk menjadi hasil.

Contoh: mengacak daftar berisi empat item

Mulai dengan empat item pada posisi 0 hingga 3: Apel, Pisang, Ceri, Kurma.

  • i = 3: pilihan acaknya adalah j = 0. Tukar posisi 3 dan 0 → Kurma, Pisang, Ceri, Apel
  • i = 2: pilihan acaknya adalah j = 2. Menukar suatu posisi dengan dirinya sendiri tidak mengubah apa pun → Kurma, Pisang, Ceri, Apel
  • i = 1: pilihan acaknya adalah j = 0. Tukar posisi 1 dan 0 → Pisang, Kurma, Ceri, Apel

Urutan akhir: Pisang, Kurma, Ceri, Apel.

Dengan empat item, terdapat 4! = 24 kemungkinan urutan. Masing-masing, termasuk urutan ini, memiliki peluang 1 banding 24 untuk muncul dalam setiap pengacakan.

Mengapa tidak cukup menukar pasangan acak?

Metode yang tampak lebih sederhana—memilih dua posisi acak lalu menukarnya, dan mengulanginya beberapa kali—terlihat acak, tetapi sebenarnya tidak. Beberapa program pengacakan awal pada tahun 1950-an bekerja dengan cara ini dan secara diam-diam lebih menyukai urutan tertentu daripada urutan lainnya, meskipun tidak ada satu pun proses yang tampak mencurigakan. Pengacakan Fisher–Yates menghindari hal ini karena setiap item dipindahkan tepat satu kali ke posisi yang dipilih dari sekumpulan pilihan yang menyusut secara tepat; inilah yang membuat setiap urutan akhir memiliki kemungkinan yang sama.

Dari mana pengacakan Fisher-Yates berasal?

Ahli statistik Ronald Fisher dan Frank Yates menjelaskan metode ini pada 1938 dalam sebuah buku tabel statistik, untuk pengacakan secara manual saat merancang eksperimen. Pada 1964, Richard Durstenfeld mengadaptasinya untuk komputer agar urutan daftar dapat diubah langsung pada daftar yang sama, tanpa memerlukan daftar kedua untuk melacak item yang tersisa. Donald Knuth memasukkan versi komputer ini ke dalam bukunya The Art of Computer Programming pada 1969, sehingga metode ini terkadang disebut pengacakan Knuth. Peramban web menggunakan algoritme yang sama hingga kini.

Penggunaan umum pengacak daftar

  • Menentukan urutan siswa untuk presentasi atau menjawab pertanyaan di kelas
  • Mengisi bagan turnamen secara acak atau menentukan urutan giliran dalam permainan
  • Membagi kelompok menjadi tim-tim secara acak
  • Memilih restoran, film, atau tugas dari daftar pilihan tanpa mengutamakan salah satu pilihan

Pengacakan biasa tidak selalu merupakan pilihan yang tepat. Jika beberapa item perlu muncul lebih sering daripada item lainnya, pemilihan berbobot lebih sesuai. Jika setiap kategori harus terwakili, pengambilan sampel berstrata bekerja lebih baik daripada satu kali pengacakan acak.

Pertanyaan yang sering diajukan

Apakah pengacakan ini benar-benar acak?

Pengacakan ini bergantung pada pembangkit bilangan acak semu (PRNG) pada peramban web, yaitu rumus yang menghasilkan rangkaian bilangan yang berperilaku seperti keacakan untuk keperluan praktis. Hal ini cukup untuk menentukan urutan di kelas, pengundian turnamen, atau memilih film. Namun, metode ini tidak dirancang untuk kriptografi, sistem perjudian, atau hal apa pun yang bergantung pada ketakterdugaan untuk uang atau keamanan; hal-hal tersebut memerlukan pembangkit bilangan acak tersertifikasi.

Apakah alat ini mengirim daftar saya ke server?

Pengacakan itu sendiri berjalan sepenuhnya di peramban menggunakan JavaScript, sehingga tidak diperlukan permintaan jaringan untuk mengurutkan ulang daftar. Daftar saat ini juga ditulis ke alamat web halaman, sehingga memuat ulang halaman atau membuat markah tidak akan menghilangkannya. Jika alamat tersebut disalin, dibagikan, atau dibuka kembali, daftar akan ikut terbawa, termasuk ke server mana pun yang nantinya memuat halaman tersebut. Hindari memasukkan informasi sensitif ke dalam daftar jika hal ini menjadi masalah.

Apa yang terjadi pada item duplikat?

Item duplikat tetap dipertahankan. Jika "Sam" muncul dua kali dalam input, item tersebut akan tetap muncul dua kali dalam hasil pengacakan, mungkin pada posisi yang berbeda.

Apakah ada batas jumlah item yang dapat saya acak?

Tidak ada batas yang ditetapkan dalam alat ini. Karena pengacakan berjalan dalam waktu linear, daftar yang panjang pun dapat diurutkan ulang dalam waktu kurang dari satu detik pada perangkat modern apa pun.

Apa perbedaan pengacakan dan pengurutan?

Pengurutan menyusun item berdasarkan aturan tetap, seperti urutan alfabet, dan selalu menghasilkan hasil yang sama untuk input yang sama. Pengacakan menyusun item secara acak dan hampir selalu menghasilkan urutan yang berbeda, bahkan dengan input yang identik.

Dapatkah saya mengacak daftar yang sama lebih dari sekali?

Ya. Setiap klik "Acak Daftar" menjalankan algoritme itu lagi, secara independen dari pengacakan sebelumnya. Dengan daftar kecil, urutan yang sama dapat terulang secara kebetulan; dengan daftar yang lebih besar, hal itu menjadi sangat tidak mungkin.