จุดเริ่มต้น
อ่านบทความเครื่องมือสุ่มตัวเลขคืออะไร: ตัวสร้างแบบฮาร์ดแวร์ ตัวสร้างตัวเลขสุ่มเทียม และตัวสร้างที่ปลอดภัยทางวิทยาการเข้ารหัสลับ ทำไมตัวเลขจึงออกซ้ำ และเบราว์เซอร์มีอะไรให้ใช้งานบ้าง เมื่อคุณต้องการเพียงตัวเลขโดยไม่ต้องมีคำอธิบาย เครื่องมือสุ่มตัวเลขจะสุ่มตัวเลขให้คุณในเบราว์เซอร์ตามทุกช่วงที่กำหนด ทั้งแบบสุ่มซ้ำได้หรือไม่สุ่มซ้ำ
จุดที่ตัวสร้างมักผิดพลาดโดยไม่รู้ตัว
แหล่งกำเนิดความสุ่มที่แข็งแกร่งเป็นเพียงครึ่งหนึ่งของงานเท่านั้น อีกครึ่งหนึ่งคือการแปลงค่าดิบเหล่านั้นให้อยู่ในช่วงที่คุณต้องการ และนั่นคือจุดที่ตัวสร้างที่เขียนขึ้นเองจำนวนมากล้มเหลว การนำค่ามาหาเศษ (modulo) ด้วยขนาดของช่วงเป็นวิธีที่ดูเรียบง่ายที่สุด แต่มันก่อให้เกิดโอกาสที่ไม่เท่ากันอย่างแนบเนียน: เว้นแต่ขนาดของช่วงจะหารพื้นที่ผลลัพธ์ของแหล่งกำเนิดได้อย่างลงตัว ตัวเลขที่มีค่าน้อยที่สุดในช่วงจะมีโอกาสเกิดขึ้นบ่อยกว่าตัวเลขที่เหลือเล็กน้อย ข้อบกพร่องนี้เรียกว่า modulo bias วิธีแก้ไขวิธีหนึ่งคือ rejection sampling: โดยการทิ้งค่าที่ตกอยู่ในส่วนที่ไม่ลงตัวแล้วสุ่มใหม่ เครื่องมือสร้างของเราใช้วิธีนี้ ตัวเลขทุกตัวในช่วงของคุณจึงมีโอกาสออกเท่ากันในการสุ่มแต่ละครั้ง
เหตุผลเดียวกันนี้ทำให้เราต้องตัดวิธีลัดที่ผู้คนมักเลือกใช้เป็นอันดับแรกทิ้งไป Math.random() ไม่ได้รับประกันความปลอดภัยใดๆ เลย และฟังก์ชันในสเปรดชีตอย่าง RAND() รวมถึง RANDBETWEEN() ก็จัดอยู่ในกลุ่มเดียวกัน: เหมาะสำหรับการสลับลำดับคร่าวๆ แต่ไม่ถูกต้องสำหรับสิ่งใดก็ตามที่อาจเกิดข้อโต้แย้ง
ตัวเลข รายการ และลูกเต๋า
เครื่องมือสุ่มตัวเลขจะส่งคืนตัวเลขจากช่วงที่คุณกำหนด ส่วนเครื่องมือสุ่มเลือกจะทำงานกับรายการที่คุณวางลงไป — เช่น ชื่อ รายการ หรือตัวเลือกต่างๆ — คุณจึงไม่ต้องมาคอยเทียบตัวเลขกลับไปยังแถวด้วยตัวเอง สำหรับเกมกระดาน ตัวสร้างลูกเต๋าจะทอยลูกเต๋าและรวมผลรวมให้ และสำหรับการเลือกหนึ่งในสองตัวเลือก การโยนหัวก้อยก็เพียงพอแล้ว เมื่อความสุ่มต้องทำหน้าที่ปกป้องสิ่งสำคัญแทนที่จะเป็นการตัดสินใจ ให้ใช้โปรแกรมสุ่มรหัสผ่านที่ปลอดภัย เครื่องมือทั้งหมดนี้ดึงข้อมูลจากแหล่งกำเนิดที่ปลอดภัยทางวิทยาการเข้ารหัสลับแบบเดียวกันในเบราว์เซอร์ของคุณ