Spin the Wheel: สุ่มผู้ชนะ ชื่อ และตัวเลือกอย่างยุติธรรม
สร้างวงล้อหมุนจากรายชื่อหรือตัวเลือก สุ่มด้วย Web Crypto ที่ยุติธรรม แล้วคัดลอกผู้ชนะ คู่มือราฟเฟิล ห้องเรียน และการตัดสินใจในชีวิตประจำวัน
Table of Contents
หมวกใบใหญ่ที่ใส่ชื่อพับๆ ใช้ได้จนกว่าจะมีคนสงสัยว่าคุณแอบดู คอลัมน์ RAND() ในสเปรดชีตใช้ได้จนกว่าครึ่งห้องมองจอไม่ทัน สิ่งที่คนต้องการจริงๆ คือการจับฉลากที่ทุกคนเห็นร่วมกัน: วงล้อที่ค่อยๆ ช้าลงจนลูกศรจอดบนชิ้นส่วนใดชิ้นหนึ่ง
Spin the Wheel ฟรี แปลงรายการตัวเลือกเป็นวงล้อ SVG สีสด หมุนหลายรอบเต็ม แล้วประกาศผู้ชนะพร้อมเสียง tick และ confetti ตามต้องการ ตัวเลือกอยู่ในเบราว์เซอร์ ความสุ่มมาจาก Web Crypto API ไม่ใช่ Math.random() ที่เดาง่าย วางชื่อ ร้านอาหาร งานบ้าน ชั้นรางวัล หรือคู่ Yes / No แล้วหมุนได้ในไม่กี่วินาที
คู่มือนี้สรุปวิธีสร้างวงล้อ ทำไมชิ้นส่วนเท่ากันยังต้องจัดรายการให้สะอาด เมื่อไหร่ควรเปิดโหมด remove-winner และวิธีจัด raffle หรือสุ่มในห้องเรียนให้คนยอมรับว่ายุติธรรม ไม่ต้องติดตั้งแอป ไม่ต้องล็อกอิน และไม่ต้องแชร์สเปรดชีตที่ใครก็แก้สูตรได้เงียบๆ
ทำไมต้องใช้ Spin the Wheel?
- ความยุติธรรมที่มองเห็นได้ ทุกคนเห็นแอนิเมชันเดียวกัน ลูกศร สี และชิ้นที่จอดเป็นสาธารณะ สำคัญกว่าเลขสุ่มเงียบๆ ในแท็บที่คุณคนเดียวเห็น
- สุ่มจากแหล่ง cryptographic แต่ละครั้งเลือกชิ้นด้วย window.crypto.getRandomValues ระดับเดียวกับที่เบราว์เซอร์ใช้สร้าง token ไม่ใช่ PRNG เดาง่ายจากเดโม
- ออกแบบมาให้จับหลายรอบ โหมด Remove Winner ตัดป้ายผู้ชนะออกจากรายการหลังหมุน เพื่อไม่ให้คนเดิมชนะ raffle ซ้ำ
- อินพุตยืดหยุ่น หนึ่งตัวเลือกต่อบรรทัด หรือคั่นด้วยจุลภาค ชื่อ ตัวเลข วลีสั้น — สูงสุด 100 ชิ้น
- เป็นส่วนตัวโดยค่าเริ่มต้น รายการไม่อัปโหลด รายชื่อนักเรียน อีเมลผู้ร่วมกิจกรรม และชื่อทีมภายในอยู่บนเครื่อง
- มีบันทึกย้อนดู History เก็บผู้ชนะ 20 คนล่าสุดพร้อม timestamp ตอบได้ว่า “ใครขึ้นไปแล้ว” โดยไม่ต้องเปิดชีตที่สอง
คุณสมบัติหลัก
| คุณสมบัติ | ทำอะไร | ทำไมถึงสำคัญ |
|---|---|---|
| วงล้อกำหนดเอง | จับแต่ละตัวเลือกเป็นชิ้นมุมเท่ากันบน SVG | รายการที่พิมพ์คือรายการที่ชนะได้ |
| แอนิเมชันหมุน | 5–7 รอบเต็ม ประมาณ 5.2 วินาที แบบ cubic ease-out | เสียง tick ที่ช้าลงทำให้ผลลัพธ์รู้สึกเป็นการจับจริง |
| RNG ที่ปลอดภัย | crypto.getRandomValues เลือก index เป้าหมาย | ยากที่จะถูกกล่าวหาว่า PRNG เดาได้ |
| Remove winner | ลบบรรทัดผู้ชนะหลังหมุน | raffle แบบไม่ใส่คืน และรายชื่อเรียกตอบ |
| เสียงและ confetti | tick ตามเลือก และระเบิดเมื่อหยุด | โชว์ได้ตามงาน ปิดเสียงในห้องเงียบ |
| History | ผู้ชนะ 20 คนล่าสุด คัดลอกชื่อปัจจุบัน | ตรวจย้อนเซสชันโดยไม่ต้องแคปจอ |
- บรรทัดว่างและจุลภาคเกินถูกข้าม ป้ายซ้ำได้ — และเพิ่มโอกาสของป้ายนั้น เพราะแต่ละบรรทัดเป็นชิ้นของตัวเอง
- ป้ายยาวเกินบนวงล้อที่แน่นจะถูกตัดตอนวาด แต่สตริงเต็มยังเป็นข้อความผู้ชนะที่คัดลอกได้
- เสียงใช้ oscillator สั้นในเบราว์เซอร์ ถ้านโยบาย autoplay บล็อกเสียงจนกว่าจะคลิก การกด Spin ครั้งแรกมักปลดล็อก
วิธีใช้
- เปิด Spin the Wheel
- วางตัวเลือกในช่องข้อความ — หนึ่งบรรทัดต่อรายการ (Alice, Bob, Charlie) หรือคั่นด้วยจุลภาค (Pizza, Ramen, Salad)
- ตัดสินใจว่า Remove Winner ควรเปิด (raffle, “ใครพรีเซนต์ต่อ”) หรือปิด (yes/no, “กินอะไร”, รายการที่ใช้ซ้ำ)
- สลับเสียงและ confetti ให้เข้ากับห้อง แล้วกด Spin รอจนลูกศรนิ่ง
- อ่านผู้ชนะ คัดลอกถ้าต้องวางในแชทหรือตั๋ว แล้วหมุนใหม่ ล้างรายการหรือ history เมื่อจบเซสชัน
ต้องมีตัวเลือกที่ไม่ว่างอย่างน้อยหนึ่งรายการ ปุ่มหมุนจะปิดบนวงล้อว่าง
เข้าใจวงล้อที่ยุติธรรม
วงล้อสุ่มแบบสม่ำเสมอบน ชิ้นส่วน ไม่ใช่บนชื่อที่ไม่ซ้ำ ถ้าวาง Alex สองครั้งและ Blair ครั้งเดียว Alex มีโอกาสสองในสาม มีประโยชน์เมื่ออยากถ่วงน้ำหนักรางวัล (Grand, Grand, Small) และเป็นบั๊กเมื่อตั้งใจสุ่มคนไม่ซ้ำ
แอนิเมชันไม่ได้เลือกผู้ชนะที่เฟรมสุดท้าย เครื่องมือเลือก index เป้าหมายก่อน แล้วคำนวณมุมหมุนให้จุดกลางของชิ้นนั้น (บวก jitter เล็กน้อยในชิ้น) ไปอยู่ใต้ลูกศรด้านบนหลังหมุนเพิ่มอีกห้าถึงเจ็ดรอบ การดูให้ช้าลงคือการแสดง ความสุ่มแบบ cryptographic เกิดไปแล้ว นี่เป็นเรื่องปกติของวงล้อดิจิทัล และดีกว่าพยายามเดาผู้ชนะจากฟิสิกส์ที่สั่น
โหมด remove-winner คือการสุ่ม โดยไม่ใส่คืน หลัง confetti บรรทัดผู้ชนะถูกลบจาก textarea ชิ้นที่เหลือถูกวาดใหม่ให้เท่ากัน ใช้กับของรางวัลหน้างานและ “ทุกคนพูดรอบละครั้ง” ปิดไว้เมื่อตัวเลือกเดิมควรอยู่ในพูล (ร้านอาหาร, วอร์มอัพถูก/ผิด)
History เป็นบันทึกเซสชัน ไม่ใช่หลักฐาน cryptographic ช่วยย้อนการจอดล่าสุดยี่สิบครั้ง ถ้าต้องการลอตเตอรี่ที่ตรวจสอบทางกฎหมายได้ คุณยังต้องมีกติกาที่ประกาศ การตรวจคุณสมบัติ และกระบวนการที่ที่ปรึกษายอมรับ — เครื่องมือนี้เป็นตัวสุ่มที่ยุติธรรมสำหรับห้องเรียนและ meetup ไม่ใช่เครื่อง sweepstakes ที่อยู่ภายใต้กฎกำกับ
ทุกอย่างรันในเครื่อง การรีเฟรชหน้าจะล้างรายการและ history คัดลอกผู้ชนะที่ต้องเก็บ หรือวาง roster จากโน้ตที่คุณมีอยู่แล้ว ถ้าเปิดเครื่องฉาย ให้ซูมหน้าต่างเบราว์เซอร์จนวงล้อเต็มจอ แล้วอย่าสลับแท็บระหว่างหมุน เพื่อไม่ให้คนในห้องคิดว่าคุณไปกดอะไรอีกจอ
กรณีใช้งานจริง
ห้องเรียนและเวิร์กช็อป
วางรายชื่อ เปิด remove winner แล้วเรียกตอบโดยไม่ต้องกวาดตากลุ่มอาสา นักเรียนเห็นวงล้อเดียวกับคุณ หลังยี่สิบชื่อยังมี history ถ้ามีคนถามว่าขึ้นไปแล้วหรือยัง สำหรับ icebreaker วงล้อที่สองของโจทย์ (two truths, desert island album) คงกลไกเดิมแต่เปลี่ยนเนื้อหา
Raffles และของรางวัล
ใส่ผู้ถือตั๋วหรือ handle โซเชียล หนึ่งบรรทัดต่อการเข้าร่วมที่เข้าเกณฑ์ ทำบรรทัดซ้ำถ้ากติกาอนุญาตตั๋วเพิ่ม เปิด remove winner เพื่อไม่ให้บัญชีเดียวกวาดทุกรางวัลในรอบเดียว คัดลอกผู้ชนะแต่ละคนลงเธรดประกาศก่อนหมุนรอบถัดไป ให้แชทตรงกับวงล้อ
Standup และงานบ้าน
หมุน “ใครเดโม”, “ใครจดโน้ต” หรือเวรสุดสัปดาห์ เปิด remove winner สำหรับ round-robin ปิดถ้าคนเดิมถูกเลือกซ้ำในสัปดาห์ได้ วงล้อสองชิ้น Yes / No เร็วกว่าเหรียญเมื่อกลุ่มจ้องโปรเจกเตอร์อยู่แล้ว
การตัดสินใจประจำวัน
ร้านอาหาร หนัง ชื่อสปรินต์ รายชื่อสั้นๆ สำหรับตั้งชื่อ จำกัดรายการเฉพาะตัวเลือกที่คุณยอมรับจริง วงล้อที่มีตัวเลือกตลกแล้วคุณไม่ยอมทำตาม จะสอนให้คนไม่เชื่อรอบถัดไป ถ้ากลุ่มใหญ่ ให้คนหนึ่งอ่านรายการดังๆ ก่อนกด Spin อีกคนยืนยันว่าไม่มีชื่อตกหล่น — ความยุติธรรมของวงล้อเริ่มที่รายการที่ใส่เข้าไป ไม่ใช่ที่สีของชิ้นส่วน
แนวทางที่ดี
- ตัดซ้ำ เว้นแต่ต้องการน้ำหนัก กวาดหารายชื่อซ้ำก่อน raffle
- ป้ายสั้น SVG ตัดขอบที่แน่น สตริงผู้ชนะเต็มยังโชว์ใต้วงล้อ
- อย่าแก้ระหว่างหมุน เปลี่ยนรายการตอนแอนิเมชันวิ่งทำให้สับสน รอผลก่อน
- จับโหมดให้เข้าเกม Remove winner เมื่อไม่ใส่คืน ปิดเมื่อตัวเลือกใช้ซ้ำได้
- ปิดเสียงในห้องสมุดและห้องสอบ เสียงเป็นตัวเลือก Confetti ปิดได้เช่นกัน
- ถือว่า refresh คือรีเซ็ต เก็บ roster ที่อื่นถ้าเซสชันอาจข้ามการโหลดหน้าใหม่
พร้อมหมุนหรือยัง?
เปิด Spin the Wheel วางรายการวันนี้ แล้วให้ลูกศรจอดต่อหน้าทุกคน ชิ้นเท่ากัน ประมวลผลในเครื่อง และ history สั้นๆ เพียงพอสำหรับห้องเรียน meetup raffle และข้อเถียง “คุณเลือกเอง”
เครื่องมือที่เกี่ยวข้องที่คุณอาจชอบ:
- Random Name Picker — จับชื่อจากรายการโดยไม่ต้องมีแอนิเมชันวงล้อ
- Dice Roller — ทอยลูกเต๋าเสมือนเมื่อต้องการตัวเลขแทนป้าย
- Coin Flipper — โยนเหรียญสองผลลัพธ์สำหรับคำถาม yes/no
สุขสันต์การหมุน!