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

โยนเหรียญและปั่นวงล้อ ฟรี

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

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

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

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

  • พลิกเหรียญเพื่อตัดสินใจใช้การพลิกเหรียญเสมือนที่ยุติธรรมเพื่อตัดสินใจอย่างรวดเร็วและเป็นกลางเมื่อคุณลังเลระหว่างสองตัวเลือก
  • หมุนวงล้อเพื่อมอบหมายทีมแบบสุ่มใช้วงล้อที่กำหนดเองเพื่อมอบหมายสมาชิกทีมแบบสุ่มให้กับงาน บทบาท หรือกลุ่ม
  • ตัวเลือกนักเรียนแบบสุ่มสำหรับห้องเรียนใช้วงล้อหรือตัวเลือกเพื่อเรียกนักเรียนแบบสุ่ม มอบหมายกลุ่ม หรือเลือกอาสาสมัคร
  • พลิกเหรียญเสมือนเพื่อกีฬาพลิกเหรียญที่ยุติธรรมเพื่อกำหนดด้านทีม การครอบครองครั้งแรก ลำดับการเสิร์ฟ หรือการตัดสินใจกีฬาอื่น ๆ
  • ตัวเลือกแบบสุ่มสำหรับการแจกของรางวัลเลือกผู้ชนะแบบสุ่มจากรายการรายการโดยใช้ตัวเลือก - โปร่งใสและยุติธรรม

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

ทั้งสามโหมด — โยนเหรียญ หมุนวงล้อ และสุ่มเลือกตัวเลือก — ใช้ Web Crypto API ในตัวของเบราว์เซอร์ (crypto.getRandomValues) เพื่อสร้างผลลัพธ์ที่ชนะ แล้วขับเคลื่อนแอนิเมชันฝั่งไคลเอนต์ทั้งหมดด้วย CSS transform และ requestAnimationFrame ไม่มีเซิร์ฟเวอร์เกี่ยวข้องในทุกขั้นตอน

  1. 1
    Web Crypto เลือกผู้ชนะ
    ก่อนแอนิเมชันเริ่ม crypto.getRandomValues จะเติม Uint32Array ด้วยจำนวนเต็ม 32 บิตแบบสุ่มเชิงวิทยาการเข้ารหัส การดำเนินการมอดูโลจับคู่กับจำนวนตัวเลือก (2 สำหรับหัว/ก้อย N สำหรับวงล้อหรือตัวสุ่มเลือก) ทุกผลลัพธ์จึงมีความน่าจะเป็นเท่ากันพอดี
  2. 2
    คำนวณมุมหมุนให้หยุดที่ผลลัพธ์
    สำหรับเหรียญ โค้ดคำนวณการหมุนเพิ่มที่สั้นที่สุด (ต่อจากมุมสะสมปัจจุบัน) ที่จบด้วยหน้าที่ถูกต้องหงายขึ้น — หัวที่ 0° ก้อยที่ 180° — แล้วเพิ่มอีก 5 รอบเต็มให้ดูเหมือนตีลังกาจริง วงล้อทำเหมือนกัน: หามุมชดเชยที่นำชิ้นที่ชนะมาอยู่ใต้ตัวชี้ เพิ่ม 6 รอบเต็ม และใส่ความคลาดเคลื่อนสุ่มเล็กน้อยเพื่อไม่ให้ตัวชี้หยุดกลางชิ้นทุกครั้ง
  3. 3
    CSS transition และ requestAnimationFrame ขับเคลื่อนแอนิเมชัน
    เหรียญและวงล้อเคลื่อนไหวผ่าน CSS transform พร้อมเส้นโค้ง cubic-bezier ที่ใช้กับค่าการหมุนสะสมค่าเดียว — ไม่ต้องใช้ JavaScript ทุกเฟรมเมื่อกำหนดมุมแล้ว ตัวสุ่มเลือกตัวเลือกใช้ requestAnimationFrame แทน: ในแต่ละเฟรม ช่วงเวลาที่เพิ่มขึ้นแบบกำลังสองกำหนดว่าจะเลื่อนไฮไลต์หรือไม่ ทำให้ชะลอตัวแบบตู้สล็อตที่หยุดที่ผู้ชนะที่กำหนดไว้ล่วงหน้าเสมอ
  4. 4
    เปิดเผยผลลัพธ์และบันทึกลงประวัติเซสชัน
    setTimeout ทำงานเมื่อแอนิเมชันเสร็จ (1.3 วินาทีสำหรับเหรียญ 4.3 วินาทีสำหรับวงล้อ) และเขียนผลลัพธ์ลง state โหมดเหรียญเก็บประวัติเซสชันสูงสุด 24 ครั้งพร้อมจำนวนหัว/ก้อย ผู้ใช้ที่เปิด prefers-reduced-motion จะข้ามแอนิเมชันทั้งหมดและเห็นผลลัพธ์ทันที

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

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