三種抽籤方式
- 名單抽人:貼上名單,設定要抽幾位。不重複適合抽獎、點名;可重複適合每次都從全部人裡重新抽的情境。
- 隨機分組:輸入名單和組數,一次分好。人數盡量平均,不滿意可以再按一次重新分。
- 隨機數字:設定最小值、最大值和個數,可以選擇是否允許重複。擲骰子就設 1 到 6,抽座號就設 1 到全班人數。
怎麼用才公平
- 名單先確認過:有沒有漏人、有沒有重複的名字。
- 抽之前先說好規則(抽幾位、可不可以重複),不要抽完才改。
- 直播或當面抽獎時,可以投影螢幕讓大家看到名單和結果,再按「複製結果」留存。
- 抽出來的結果就是結果。重抽會得到不一樣的答案,所以要不要重抽,得先約定好。
常見的使用情境
- 班級、社團:抽報告順序、抽座位、分組討論。
- 公司活動:尾牙抽獎、分組競賽、決定誰負責哪件事。
- 社群留言抽獎:把參加者名單貼進來,抽出得獎者。留言抽獎請依各平台的活動規範辦理,並在抽之前公布規則。
- 家人朋友:抽籤決定誰洗碗、聚餐分幾桌、交換禮物誰送誰。
如果你想用「轉盤」的畫面來抽,可以用線上轉盤;想要一次抽出好幾位不重複的人,用這裡的名單抽人比較方便。
常見問題
這個抽籤是真的公平隨機嗎?
是。每一次抽選都用瀏覽器內建的 crypto.getRandomValues 產生亂數,並且用「拒絕取樣」的方式換算成名單裡的位置,避免用取餘數換算時某些位置機率偏高的問題。名單裡每一個人被抽中的機會完全相同。整個過程在你的瀏覽器裡完成,不經過伺服器,我們也看不到你的名單。
「不重複」和「可重複」差在哪裡?
不重複是抽出來的人不會再被抽到,像是抽三位得獎者,三個人一定都不同;可重複是每一次抽都從完整名單裡重新抽,同一個人可能被抽到好幾次,適合做模擬、決定每天輪到誰這類情境。名單裡如果有同一個名字出現兩次,會被當成兩個籤,機會也就變成兩倍。
分組是怎麼分的?每組人數會一樣嗎?
程式先把名單完整洗牌,再依序一個一個發給第 1 組、第 2 組……輪流發下去,所以人數會盡量平均,各組最多只差 1 人。例如 10 個人分 3 組,會是 4、3、3。如果你需要指定每組人數,可以分好之後再自己調整。同一批人再按一次,會得到完全不同的分法。
隨機數字可以拿來做樂透選號嗎?
可以拿來選號,例如範圍 1 到 49、抽 6 個、勾選不重複。但提醒你,樂透每一期開獎號碼是獨立隨機的,用什麼方法選號,中獎機率都是一樣的,這個工具沒辦法提高中獎機會。你也可以把它拿來擲骰子(1 到 6)、抽座號、決定先後順序。
輸入的名單會被記錄或上傳嗎?
不會。名單只存在這個頁面的記憶體裡,不會送出去,也沒有儲存在伺服器或瀏覽器裡,重新整理頁面就會回到預設範例。如果要保留結果,按「複製結果」貼到別的地方存起來。
運作原理
所有抽選都在你的瀏覽器裡完成,名單和結果不會傳到伺服器。亂數來源是 Web Crypto API 的 crypto.getRandomValues,這是瀏覽器內建的密碼學等級亂數。把亂數換算成「0 到 n−1 的整數」時,程式用拒絕取樣:如果抽到的數字落在會造成偏差的尾端區間就丟掉重抽,確保每個位置機率完全相同。不重複抽人是用 Fisher–Yates 洗牌的前 N 步,分組則是整份名單洗牌後輪流發牌。沒有使用 Math.random。