🔧Toolify

เครื่องสุ่มตัวเลข (ปลอดภัยเข้ารหัส

เลือก min, max และจำนวนที่ต้องการเพื่อสุ่มจำนวนเต็มที่ปลอดภัยเข้ารหัส เปิด 'ไม่ซ้ำ' สำหรับการสุ่มแบบไม่คืน (จับฉลาก, ลอตเตอรี่)

ตั้งช่วงและคลิก 'สุ่มใหม่' เพื่อรับตัวเลขสุ่ม

วิธีการทำงาน

ทำไมถึงสุ่มได้จริง

เราใช้ crypto.getRandomValues — แหล่งสุ่มที่ปลอดภัยเข้ารหัสของเบราว์เซอร์ — แทนที่จะใช้ Math.random() ผลลัพธ์จาก CSPRNG ไม่สามารถทำนายได้จากค่าก่อนหน้า ซึ่งสำคัญสำหรับการจับสลากลอตเตอรี่ แอปพลิเคชันที่เกี่ยวข้องกับการพนัน และกรณีใดก็ตามที่ 'สุ่ม' เป็นข้อกำหนดจริง ไม่ใช่แค่ 'สุ่มๆ'

เราใช้ rejection sampling เพื่อให้การกระจายตัวสม่ำเสมออย่างแน่นอนตลอดช่วงที่เลือก 'random % range' แบบง่ายจะมี bias เมื่อช่วงไม่หารลงตัวใน 2³² Rejection sampling ทิ้งค่าที่จะทำให้เกิด bias แล้วลองใหม่ ดังนั้นทุกตัวเลขในช่วงของคุณมีความน่าจะเป็นเท่ากันพอดี

ไม่ซ้ำกับอนุญาตซ้ำ

โหมดปริยาย: ตัวเลขแต่ละตัวเป็นอิสระ — อาจซ้ำได้ นี่คือสิ่งที่ 'สุ่ม' มักหมายถึงในการใช้งานทั่วไป (โยนลูกเต๋า เลือกหนัง ทดสอบแบบสุ่ม)

โหมดไม่ซ้ำ: สุ่มตัวอย่างแบบไม่คืน — เมื่อตัวเลขถูกเลือกแล้ว จะไม่ถูกเลือกซ้ำในชุดเดียวกัน มีประโยชน์สำหรับ: จับสลากลอตเตอรี่ (เช่น 6 ตัวเลขจาก 1-49) จับฉลาก การมอบหมายทีม และสถานการณ์ 'เลือก N จาก M' ใดก็ได้ ต้องการ count ≤ ช่วง

กรณีใช้งานทั่วไป

ลอตเตอรี่ / จับฉลาก: 6 ตัวเลขไม่ซ้ำจาก 1-49 หรือตามรูปแบบที่ใช้ เปิด 'ไม่ซ้ำ'

โยนลูกเต๋า: ช่วง 1-6 (หรือ 1-20 สำหรับ D20) ปิด 'ไม่ซ้ำ' เพื่อให้แต่ละครั้งเป็นอิสระ

การสุ่มตัวอย่างสำหรับการทดสอบ: เลือก 10 user ID สุ่มจาก 1-10000 เพื่อตรวจสอบแบบ spot-check ใช้ 'ไม่ซ้ำ' เพื่อหลีกเลี่ยงซ้ำ

จำลองการโยนเหรียญ: ช่วง 0-1 หลายผลลัพธ์ นับหัว/ก้อยเพื่อตรวจความเป็นธรรม (จะเห็น ~50/50 กับตัวอย่างใหญ่)

คำถามที่พบบ่อย

นี่ยุติธรรมสำหรับจับฉลากหรือลอตเตอรี่ไหม?

ความสุ่มมีความปลอดภัยเข้ารหัสและไม่มี bias ว่ายุติธรรมทางกฎหมายสำหรับลอตเตอรี่ทางการหรือไม่ขึ้นอยู่กับกฎของหน่วยงานกำกับดูแล — หลายแห่งต้องการ hardware RNG ที่ผ่านการรับรอง

ต่างจาก Math.random() อย่างไร?

Math.random() ใช้อัลกอริทึมที่ผู้โจมตีสามารถทำนายผลลัพธ์ได้จากค่าก่อนหน้า crypto.getRandomValues ใช้ CSPRNG ระดับ OS ที่ไม่สามารถทำนายได้ สำหรับความยุติธรรมจริง ใช้อันนี้

ใช้ตัวเลขลบได้ไหม?

ได้ ตั้ง min เป็นค่าลบ

ช่วงสูงสุดเท่าไร?

จำกัดโดยช่วง safe integer ของ JavaScript (~2⁵³) แต่ในทางปฏิบัติสามารถไปถึงพันล้านได้โดยไม่มีปัญหา เทคนิค rejection sampling จัดการช่วงใดก็ได้อย่างถูกต้อง

ทำไม 'ไม่ซ้ำ' ล้มเหลวเมื่อ count > ช่วง?

ถ้าเลือก 10 ตัวเลขไม่ซ้ำจาก 1-5 ตัวเลข 4 ตัวไม่มีอยู่จริง การตรวจสอบจะจับสิ่งนี้และขอให้ขยายช่วงหรือลดจำนวน

ใช้สำหรับโยนลูกเต๋าได้ไหม?

ได้ — ตั้งช่วงเป็น 1-6 (หรือลูกเต๋าของคุณ) และปิด 'ไม่ซ้ำ' เพื่อให้แต่ละการโยนเป็นอิสระ

บันทึก seed และทำซ้ำได้ไหม?

ไม่ได้ — การสุ่มที่ปลอดภัยออกแบบมาให้ไม่มี seed ถ้าต้องการ 'สุ่ม' ที่ทำซ้ำได้สำหรับการทดสอบ ใช้ library PRNG ที่มี seed

ข้อมูลถูกส่งออกไปไหม?

ไม่ การสุ่มทำงานในเครื่องทั้งหมด

เครื่องมือที่เกี่ยวข้อง

อัปเดตล่าสุด:

ลองพรอมต์ AI ของเรา →