เครื่องมือกิจกรรมและการสุ่ม
สุ่มชุดตัวเลข 2, 3 และ 6 หลัก แบบไม่ซ้ำ
สร้างชุดตัวเลขความยาวคงที่สำหรับกิจกรรม เกม ข้อมูลตัวอย่าง และงานทั่วไป เลือกจำนวนชุด ล็อกตำแหน่ง หรือตัดตัวเลขได้ โดยรักษาเลขศูนย์ด้านหน้าและไม่บันทึกผล
แชร์เครื่องมือนี้
คำตอบแบบสั้น
จะสุ่มชุดตัวเลขหลายหลักให้แต่ละชุดมีโอกาสเท่ากันได้อย่างไร
เลือก 2, 3 หรือ 6 หลัก กำหนดจำนวนชุดและเงื่อนไข จากนั้นระบบจะนับชุดที่เป็นไปได้ รับค่าสุ่ม 32 บิตจาก Web Crypto แล้วใช้ rejection sampling เลือกแขนงตามจำนวนผลที่ต่อได้ จึงให้น้ำหนักเท่ากันแก่ทุกชุดที่ผ่านเงื่อนไข ผลในรอบเดียวกันไม่ซ้ำและเลขศูนย์ด้านหน้าจะไม่ถูกตัดออก
วิธีใช้งาน
- เลือกความยาว 2, 3 หรือ 6 หลัก และกำหนดจำนวนผล 1–20 ชุด
- หากต้องการ ให้ล็อกตัวเลขบางตำแหน่ง ตัดตัวเลขที่ไม่ต้องการ ปิดศูนย์ด้านหน้า หรือกำหนดไม่ให้มีตัวเลขซ้ำภายในชุดเดียว
- ตรวจจำนวนชุดที่เป็นไปได้ซึ่งคำนวณใหม่ตามเงื่อนไข แล้วกดสร้างชุดตัวเลข
- คัดลอกผลไปใช้กับกิจกรรมหรือข้อมูลตัวอย่าง และเริ่มรอบใหม่เมื่อต้องการล้างรายการไม่ซ้ำในหน่วยความจำของแท็บ
หลักการคำนวณ
กำหนด D เป็นจำนวนตัวเลขที่ใช้ได้และ n เป็นจำนวนหลัก หากอนุญาตศูนย์ด้านหน้าและใช้ตัวเลขซ้ำได้ จำนวนชุดพื้นฐานคือ D^n เมื่อปิดศูนย์ด้านหน้า จำนวนตัวเลือกหลักแรกจะลดลงหนึ่งหาก 0 ยังใช้งานได้ ส่วนเงื่อนไขไม่ใช้ตัวเลขซ้ำจะนับแบบเรียงสับเปลี่ยนพร้อมตรวจตำแหน่งที่ล็อก โค้ดใช้ dynamic programming นับจำนวนผลที่ต่อได้จากแต่ละตำแหน่ง แล้วใช้ crypto.getRandomValues กับ rejection sampling เลือกแขนงตามน้ำหนัก ก่อนสร้างหลายชุดแบบไม่คืนผลเดิมเข้ากลุ่ม การล็อกหรือตัดตัวเลขเป็นการเปลี่ยนกลุ่มที่เข้าสุ่ม ไม่ได้ทำให้ผลหนึ่งดีกว่าอีกผล
ตัวอย่างผลลัพธ์
| ตัวอย่าง | ข้อมูลนำเข้า | ผลที่คาดหวัง |
|---|---|---|
| เลข 2 หลักที่ใช้ตัวเลขครบ 0–9 | |
มีชุดที่เป็นไปได้ 10² = 100 ชุด ตั้งแต่ 00 ถึง 99 แต่ละชุดมีน้ำหนักเท่ากัน |
| เลข 3 หลักโดยไม่มีศูนย์ด้านหน้า | |
หลักแรกมี 9 ตัวเลือกและอีกสองหลักมีหลักละ 10 ตัวเลือก รวม 9 × 10 × 10 = 900 ชุด |
| เลข 6 หลักโดยไม่ใช้ตัวเลขซ้ำ | |
มีชุดที่เป็นไปได้ 10 × 9 × 8 × 7 × 6 × 5 = 151,200 ชุด |
ข้อจำกัด
- รองรับเฉพาะชุดตัวเลข 2, 3 และ 6 หลัก และสร้างได้สูงสุด 20 ชุดต่อรอบเพื่อให้ผลอ่านและตรวจสอบได้ง่าย
- ไม่มี seed ที่เปิดเผย ลายเซ็น พยาน หรือบันทึกจากบุคคลที่สาม จึงไม่ใช่หลักฐานเดียวสำหรับกระบวนการที่ต้องตรวจสอบย้อนหลัง
- การล็อก ตัดตัวเลข ปิดศูนย์ด้านหน้า หรือห้ามตัวเลขซ้ำจะลดและเปลี่ยนประชากรที่เข้าสุ่ม ไม่ได้เพิ่มคุณสมบัติให้ชุดที่ได้
- ผลที่มองเห็นหรือคัดลอกได้ไม่เหมาะกับรหัสผ่าน รหัสใช้ครั้งเดียว กุญแจเข้ารหัส หมายเลขบัญชี หรือข้อมูลลับประเภทอื่น
- ประวัติไม่ซ้ำเป็นข้อมูลชั่วคราวในแท็บเท่านั้นและจะถูกล้างเมื่อโหลดหน้าใหม่ ปิดแท็บ หรือกดเริ่มรอบใหม่
คำถามที่พบบ่อย
เลขศูนย์ด้านหน้าจะหายหรือไม่
ไม่หาย ผลถูกจัดการเป็นชุดอักขระตามจำนวนหลัก ไม่ใช่จำนวนเต็มทั่วไป ดังนั้น 007291 ยังคงแสดงครบ 6 หลักเมื่อเปิดตัวเลือกศูนย์ด้านหน้า
ทุกชุดมีโอกาสเท่ากันจริงหรือไม่
เท่ากันภายในกลุ่มที่ผ่านเงื่อนไขเดียวกัน ระบบนับจำนวนผลที่ต่อได้จากแต่ละแขนงและเลือกตามน้ำหนักด้วย rejection sampling หากล็อกหรือตัดตัวเลข กลุ่มที่เข้าสุ่มจะเปลี่ยนไป
คำสั่งไม่ใช้ตัวเลขซ้ำทำงานอย่างไร
ตัวเลขหนึ่งตัวจะปรากฏได้ไม่เกินหนึ่งครั้งในชุดเดียว ตำแหน่งที่ล็อกจึงต้องต่างกันและต้องมีตัวเลขที่ใช้ได้ไม่น้อยกว่าจำนวนหลัก
เว็บไซต์จำผลหรือเงื่อนไขที่เลือกไว้หรือไม่
ไม่จำบนเซิร์ฟเวอร์และไม่ใช้ cookie, localStorage หรือข้อมูลใน URL รายการที่ใช้หลีกเลี่ยงผลซ้ำอยู่ในหน่วยความจำของแท็บและหายเมื่อโหลดหน้าหรือปิดแท็บ
ใช้ผลเป็นรหัสผ่านหรือรหัสยืนยันได้หรือไม่
ไม่ควร ผลปรากฏบนหน้าจอและอาจถูกคัดลอก จึงไม่ได้ออกแบบเป็นระบบจัดการข้อมูลลับ รหัสใช้ครั้งเดียว กุญแจเข้ารหัส หรือข้อมูลประจำบัญชี
เครื่องมือนี้วิเคราะห์ข้อมูลเดิมหรือคาดการณ์ผลภายหลังหรือไม่
เครื่องมือนี้ไม่วิเคราะห์เหตุการณ์ในอดีตและไม่คาดการณ์ผลในอนาคต ระบบใช้เฉพาะเงื่อนไขปัจจุบันเพื่อสร้างชุดตัวเลขแบบสุ่ม ผลก่อนหน้าไม่มีผลต่อค่าน้ำหนักของชุดในรอบใหม่ นอกจากการหลีกเลี่ยงผลซ้ำชั่วคราวตามที่แสดง
แหล่งอ้างอิง
- W3C — Web Cryptography Level 2: getRandomValues ตรวจสอบเมื่อ 2026-08-13
- IETF — RFC 4086: Randomness Requirements for Security ตรวจสอบเมื่อ 2026-08-13
เนื้อหาและวิธีคำนวณตรวจสอบล่าสุด: