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