Pola pemrograman umum memilih item acak menggunakan modulo: `choices[random_u64() % n]`. Ini terasa intuitif tetapi menimbulkan bias statistik karena rentang acak jarang habis dibagi oleh jumlah pilihan.
Misalnya, memilih dari 3 item menggunakan angka acak dalam rentang [0, 9] memberikan 4 input ke pilihan 1 (0, 3, 6, 9) tetapi hanya 3 input masing-masing ke pilihan 2 dan 3. Pilihan 1 muncul 40% waktu alih-alih yang diharapkan 33,3%. Bias modulo terjadi setiap kali rentang acak bukan kelipatan dari jumlah pilihan.
Pendekatan yang benar menggunakan `random_between(l, h)` yang mendistribusikan probabilitas dengan benar, sebbene lebih kompleks untuk diimplementasikan. Desain API yang lebih baik akan menyediakan fungsi tingkat tinggi seperti `random_choice()` yang menerima distribusi probabilitas eksplisit, memaksa pengembang untuk langsung menghadapi persyaratan distribusi alih-alih bergantung pada primitif tingkat rendah yang cacat.
Sumber: Hacker News · Diringkas oleh HeadlinesBriefing