ข้ามไปยังเนื้อหาหลัก

สร้างตัวเลขสุ่ม ฟรี

สร้างตัวเลขสุ่มในช่วงใดก็ได้ สร้างรายการตัวเลขไม่ซ้ำ หรือทอยลูกเต๋า ใช้ความสุ่มที่ปลอดภัยด้วยการเข้ารหัส

ใช้งานได้แบบออฟไลน์เมื่อโหลดแล้ว

🔒 ตัวเลขทุกตัวใช้ความสุ่มเข้ารหัสของเบราว์เซอร์ (crypto.getRandomValues) — สุ่มจริง ไม่ใช่ Math.random() ที่คาดเดาได้ ไม่มีการส่งข้อมูล แม้กระนั้น อย่าใช้ตัวเลขเหล่านี้สำหรับการสร้างคีย์เข้ารหัส โทเค็นความปลอดภัย หรือแอปลอตเตอรี/การพนันที่มีการควบคุม ซึ่งต้องการแหล่งความสุ่มที่ผ่านการรับรองด้วยฮาร์ดแวร์

ต้องการจับสลากเลือกผู้ชนะจากรายชื่อ หรือโยนเหรียญ? ใช้เครื่องมือโยนเหรียญ วงล้อสุ่ม และตัวเลือกรายการ →

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

  • สร้างหมายเลขลอตเตอรี่เลือกหมายเลขลอตเตอรี่แบบสุ่มสำหรับ Powerball Mega Millions EuroMillions และการจับฉลากอื่น ๆ
  • เลือกผู้ชนะแบบสุ่มสำหรับการแจกของรางวัลเลือกผู้ชนะแบบสุ่มอย่างยุติธรรมจากรายการรายการที่มีหมายเลขสำหรับการแข่งขันและการแจกของรางวัล
  • ทอยลูกเต๋าสำหรับเกมบอร์ดทอยการรวมลูกเต๋าใด ๆ - d4 d6 d8 d10 d12 d20 d100 - สำหรับ D&D และเกมเล่นบทบาทบอร์ด
  • การสุ่มตัวอย่างแบบสุ่มเพื่อการวิจัยสร้างตัวอย่างแบบสุ่ม กำหนดรหัสแบบสุ่ม หรือเลือกชุดย่อยแบบสุ่มจากชุดข้อมูลที่มีหมายเลข
  • สร้างตัวเลขสุ่มข้อมูลการทดสอบสร้างรายการหมายเลขสุ่มขนาดใหญ่สำหรับอัลกอริทึมการทดสอบ การเติมฐานข้อมูล และการทดสอบความเครียดของระบบ

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

ทุกตัวเลขที่เครื่องมือนี้สร้างมาจาก crypto.getRandomValues — แหล่งสุ่มที่ปลอดภัยเชิงวิทยาการเข้ารหัสของเบราว์เซอร์ ตัวเดียวกับที่ใช้สร้างคีย์ TLS มีอัลกอริทึมสุ่มแบบปฏิเสธที่เขียนขึ้นเองทำงานอยู่ด้านบน เพื่อขจัดความลำเอียงจากมอดูโลที่พบในการเขียนแบบ Math.random() % range ธรรมดา รวมถึงช่วงที่กว้างกว่า 2^32 ผ่านเลขคณิต BigInt

  1. 1
    ตั้งช่วงและโหมด
    เลือกระหว่างตัวเลขเดียว รายการเป็นชุด (สูงสุด 1000) หรือลูกเต๋าหลายหน้า (d4 ถึง d100) สำหรับรายการ คุณยังกำหนดให้ค่าไม่ซ้ำและเรียงผลลัพธ์จากน้อยไปมากได้
  2. 2
    crypto.getRandomValues ดึงเอนโทรปีดิบ
    แต่ละตัวเลขสุ่มจาก Uint32Array (หรือ BigUint64Array สำหรับช่วงที่กว้างกว่า 2^32) ที่เติมโดย RNG เชิงวิทยาการเข้ารหัสของเบราว์เซอร์ — ไม่ใช่ Math.random() จากนั้นการสุ่มแบบปฏิเสธทิ้งค่าที่จะทำให้การกระจายเบ้ ทุกจำนวนเต็มในช่วงจึงมีความน่าจะเป็นเท่ากันพอดี
  3. 3
    โหมดค่าไม่ซ้ำใช้ Fisher-Yates หรือการติดตามแบบปฏิเสธ
    เมื่อเปิดโหมดไม่ซ้ำและช่วงพอดีกับหน่วยความจำ (สูงสุด 100,000 ค่า) เครื่องมือจะสร้างชุดเต็มและสับด้วย Fisher-Yates สำหรับช่วงที่ใหญ่มาก จะสุ่มทีละค่าและข้ามค่าที่ซ้ำ — หลีกเลี่ยงต้นทุนหน่วยความจำของการสร้างอาร์เรย์หลายพันล้านรายการ
  4. 4
    ผลลัพธ์ปรากฏพร้อมแอนิเมชันและอยู่ในประวัติเซสชัน
    ค่าสุดท้ายเคลื่อนไหวเข้าที่ (หมุนแบบตู้สล็อตสำหรับตัวเลข ลูกเต๋ากลิ้งสำหรับโหมดลูกเต๋า) ด้วย requestAnimationFrame แล้วปรากฏในบันทึกประวัติที่เลื่อนได้ซึ่งคุณคัดลอกได้ทุกเมื่อ ไม่มีสิ่งใดออกจากเบราว์เซอร์

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

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