Di mana hendak bermula
Baca apa itu penjana nombor rawak: penjana perkakasan, pseudo-rawak dan selamat secara kriptografi, mengapa nombor berulang, dan apa yang ditawarkan oleh pelayar. Apabila anda memerlukan nombor dan bukannya penjelasan, penjana nombor rawak menjananya dalam pelayar anda dalam sebarang julat, dengan atau tanpa ulangan.
Di mana penjana silap secara senyap
Sumber kerawakan yang kuat hanyalah separuh daripada tugas. Separuh lagi ialah memadankan nilai mentahnya ke dalam julat anda, dan di situlah kebanyakan penjana buatan sendiri gagal. Mengambil nilai modulo mengikut saiz julat ialah pendekatan yang lazim, tetapi ia mempunyai berat sebelah yang halus: melainkan saiz julat membahagi ruang output sumber secara sama rata, nombor terendah dalam julat akan muncul sedikit lebih kerap daripada nombor lain. Kelemahan ini dipanggil bias modulo (modulo bias). Salah satu penyelesaiannya ialah persampelan penolakan (rejection sampling): buang nilai yang berada dalam baki yang tidak sekata dan jana semula. Penjana kami melakukan perkara ini, jadi setiap nombor dalam julat anda mempunyai peluang yang sama pada setiap cabutan.
Alasan yang sama menolak jalan pintas yang sering diambil orang terlebih dahulu. Math.random() tidak menjanjikan sebarang keselamatan, dan fungsi hamparan elektronik seperti RAND() serta RANDBETWEEN() tergolong dalam kelas yang sama: sesuai untuk kocokan kasar, tetapi salah untuk apa-apa yang mungkin dipertikaikan orang.
Nombor, senarai dan dadu
Penjana nombor rawak mengembalikan nombor daripada julat yang anda tetapkan. Pemilih rawak berfungsi pada senarai yang anda tampal — nama, penyertaan, pilihan — jadi anda tidak perlu memadankan nombor kembali ke baris secara manual. Untuk permainan meja, penjana dadu membaling dadu dan menjumlahkan markah, dan untuk pilihan antara dua perkara, lambungan syiling sudah memadai. Apabila kerawakan bertujuan melindungi sesuatu dan bukannya memutuskan sesuatu, gunakan penjana kata laluan yang kuat. Kesemuanya menggunakan sumber selamat secara kriptografi yang sama dalam pelayar anda.