คู่มือการสุ่มตัวเลข: ตัวสร้างทำงานอย่างไรและจุดที่มักผิดพลาด

ตัวเลขสุ่มดูเหมือนเป็นสิ่งที่คอมพิวเตอร์สร้างขึ้นได้ง่ายที่สุด แต่ก็เป็นหนึ่งในเรื่องที่เกิดข้อผิดพลาดขึ้นอย่างแนบเนียนได้ง่ายที่สุดเช่นกัน บทความในหมวดหมู่นี้จะอธิบายว่าตัวเลขเหล่านั้นมาจากไหน อะไรคือสิ่งที่แบ่งแยกตัวสร้างที่คุณวางใจได้ออกจากตัวสร้างที่คุณไม่ควรไว้วางใจ และควรเลือกใช้เครื่องมือใดเมื่อผลลัพธ์ต้องเชื่อถือได้ — ไม่ว่าจะเป็นการจับสลากในชั้นเรียน กิจกรรมแจกรางวัล หรือชุดข้อมูลสำหรับการทดสอบ

จุดเริ่มต้น

อ่านบทความเครื่องมือสุ่มตัวเลขคืออะไร: ตัวสร้างแบบฮาร์ดแวร์ ตัวสร้างตัวเลขสุ่มเทียม และตัวสร้างที่ปลอดภัยทางวิทยาการเข้ารหัสลับ ทำไมตัวเลขจึงออกซ้ำ และเบราว์เซอร์มีอะไรให้ใช้งานบ้าง เมื่อคุณต้องการเพียงตัวเลขโดยไม่ต้องมีคำอธิบาย เครื่องมือสุ่มตัวเลขจะสุ่มตัวเลขให้คุณในเบราว์เซอร์ตามทุกช่วงที่กำหนด ทั้งแบบสุ่มซ้ำได้หรือไม่สุ่มซ้ำ

จุดที่ตัวสร้างมักผิดพลาดโดยไม่รู้ตัว

แหล่งกำเนิดความสุ่มที่แข็งแกร่งเป็นเพียงครึ่งหนึ่งของงานเท่านั้น อีกครึ่งหนึ่งคือการแปลงค่าดิบเหล่านั้นให้อยู่ในช่วงที่คุณต้องการ และนั่นคือจุดที่ตัวสร้างที่เขียนขึ้นเองจำนวนมากล้มเหลว การนำค่ามาหาเศษ (modulo) ด้วยขนาดของช่วงเป็นวิธีที่ดูเรียบง่ายที่สุด แต่มันก่อให้เกิดโอกาสที่ไม่เท่ากันอย่างแนบเนียน: เว้นแต่ขนาดของช่วงจะหารพื้นที่ผลลัพธ์ของแหล่งกำเนิดได้อย่างลงตัว ตัวเลขที่มีค่าน้อยที่สุดในช่วงจะมีโอกาสเกิดขึ้นบ่อยกว่าตัวเลขที่เหลือเล็กน้อย ข้อบกพร่องนี้เรียกว่า modulo bias วิธีแก้ไขวิธีหนึ่งคือ rejection sampling: โดยการทิ้งค่าที่ตกอยู่ในส่วนที่ไม่ลงตัวแล้วสุ่มใหม่ เครื่องมือสร้างของเราใช้วิธีนี้ ตัวเลขทุกตัวในช่วงของคุณจึงมีโอกาสออกเท่ากันในการสุ่มแต่ละครั้ง

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

ตัวเลข รายการ และลูกเต๋า

เครื่องมือสุ่มตัวเลขจะส่งคืนตัวเลขจากช่วงที่คุณกำหนด ส่วนเครื่องมือสุ่มเลือกจะทำงานกับรายการที่คุณวางลงไป — เช่น ชื่อ รายการ หรือตัวเลือกต่างๆ — คุณจึงไม่ต้องมาคอยเทียบตัวเลขกลับไปยังแถวด้วยตัวเอง สำหรับเกมกระดาน ตัวสร้างลูกเต๋าจะทอยลูกเต๋าและรวมผลรวมให้ และสำหรับการเลือกหนึ่งในสองตัวเลือก การโยนหัวก้อยก็เพียงพอแล้ว เมื่อความสุ่มต้องทำหน้าที่ปกป้องสิ่งสำคัญแทนที่จะเป็นการตัดสินใจ ให้ใช้โปรแกรมสุ่มรหัสผ่านที่ปลอดภัย เครื่องมือทั้งหมดนี้ดึงข้อมูลจากแหล่งกำเนิดที่ปลอดภัยทางวิทยาการเข้ารหัสลับแบบเดียวกันในเบราว์เซอร์ของคุณ

พร้อมใช้งานเครื่องมือแล้วหรือยัง?

ทดลองใช้เครื่องมือ เครื่องมือสุ่มตัวเลข ฟรีและปลอดภัยได้ในเบราว์เซอร์ของคุณโดยตรง

เปิดเครื่องมือ