線上抽籤點名工具

🔒 本機處理 隨機工具

貼上名單就能抽人、分組、排順序,也能做交換禮物配對(保證不抽到自己)。抽人可選「不重複」或「可重複」,分組可指定組數或每組人數,名單只在你的瀏覽器裡處理。

預設值是 30 個座號(01 到 30):抽 3 位、不重複,每個人被抽中的機率是 3÷30=10%;切到「隨機分組」預設分成 6 組,每組 5 人。名單、模式與人數都可以自己改。

工具互動區

結果
結果會顯示在這裡

這個工具可以做什麼

  • 抽人:從名單抽出 1 位或多位,可選「不重複」(抽過的人不會再被抽到)或「可重複」(每次都從整份名單抽)。
  • 隨機分組:指定要分成幾組,或指定每組幾人,人數除不盡時各組最多相差 1 人。
  • 排順序:把整份名單隨機打亂,適合排報告順序、上台順序,也能決定交換禮物時誰先挑。
  • 交換禮物(不抽到自己):每個人送出一份、收到一份,保證沒有人抽到自己;結果可先遮住,一人一人輪流看。

名單怎麼貼:Excel 欄位、聊天室名單、同名的人

工具以「一行一個候選人」讀名單。前後空白(包含全形空白)會去掉,空白行會略過;同樣的名字出現兩次,就是兩個候選人,頁面會在名單下方提醒。

不同來源的名單怎麼貼
名單來源怎麼做要注意
試算表的一欄選取整欄複製,直接貼進文字框每個儲存格變成一行,空白儲存格會被略過
試算表的兩欄(座號+姓名)兩欄一起複製貼上兩欄之間的 Tab 字元會換成一個空格,同一列變成一位候選人,例如「05 林怡君」
一串用頓號或逗號隔開的名字把「名單分隔」改成「逗號、頓號、分號」英文姓名若含逗號(例如 Smith, John)會被拆成兩個,這種名單請維持「每行一個」
有同名同姓的人在名字後面加座號或組別,例如「王小明 07」不加的話,兩位同名者仍是兩個候選人,但抽出來的結果你分不出是誰
有人缺席先把缺席者的那一行刪掉再抽刪除或修改名單會讓「已抽出」的紀錄歸零,因為名單已經不是同一份
  • 四種模式速查:課堂點名或抽獎用「抽人(預設不重複)」;小組討論用「隨機分組(任兩組最多差 1 人)」;上台報告或現場輪流挑禮物用「排順序」;秘密聖誕老人(指定誰送誰且不抽到自己)用「交換禮物(不抽到自己)」。

抽籤不重複與可重複,差在哪裡

「不重複」是抽過的人這一輪不會再出現,直到按「重新開始」;「可重複」是每次都從整份名單抽,同一個人可能連續中選。同樣是 30 人抽 3 位,兩種設定的機率不一樣:

30 人、抽 3 位:不重複與可重複的機率
項目不重複可重複
某一個指定的人被抽中3÷30=10%1−(29÷30)³=9.67%(至少被抽中一次)
3 位裡有人出現兩次以上不可能1−(30×29×28)÷30³=9.78%
換成抽 5 位,有人出現兩次以上不可能29.63%
換成抽 10 位,有人出現兩次以上不可能81.54%
適合全班輪流、一人一次、決定名次每題都從全班抽一位回答,允許同一人再被抽到

機率由 src/lib/randomPicker.ts 的 chance 函式算出,測試檔以整數分數重算過:24360÷27000=90.22% 是「3 次都不同人」,所以重複的機率是 9.78%。

  • 要「全班輪一輪、每人剛好一次」:維持不重複,一直抽到頁面提示全部抽完,再按「重新開始」。
  • 「可重複」在同一次按下按鈕、抽多位時,是多次互相獨立的抽取;結果若有人出現兩次,會在下方註明。
  • 重新整理頁面、編輯名單,「已抽出」的紀錄都會歸零,工具不會幫你保存。

隨機分組:幾組、每組幾人、除不盡怎麼辦

分組會先把整份名單隨機打亂,再依序切成幾份。n 個人分成 g 組時,每組人數是 n÷g 的整數部分,或再多 1 人:前面「n 除以 g 的餘數」那幾組多 1 人,所以任兩組最多差 1 人。選「每組幾人」時,工具先算出組數 g=⌈n÷每組人數⌉,再用同樣的方式平均分配,不會留下一個人孤單一組。

分組人數對照(已由 groupSizes() 與 groupCountForSize() 算出)
人數設定組數各組人數
30分成 6 組65、5、5、5、5、5
31分成 6 組66、5、5、5、5、5
38每組 4 人104 人 8 組、3 人 2 組
25每組 4 人74、4、4、4、3、3、3(不是 4×6 再加 1 人)

人數較多的組一定排在最前面(例如 31 人分 6 組時,第 1 組是 6 人)。誰在哪一組是隨機的,但「第 1 組比較大」是固定的;需要的話,再用「排順序」決定各組的上台順序。

小組作業有平時、期中、期末等不同占比時,可以用加權平均計算器合成分數。

  • 工具只做隨機分組,不處理「這兩個人不要同組」「每組男女各半」「每組程度平均」這類條件;有條件時,建議分完後手動對調。
  • 組數不能超過人數;填 0、小數或負數會顯示錯誤,不會硬分。

排報告順序、上台順序

「排順序」把整份名單隨機打亂,從上到下就是順序。10 個人有 10!=3,628,800 種排法,在亂數均勻的前提下每一種出現的機會相同。想要「先抽出報告組別,再抽組內發表順序」,可以先分組,再把各組名單貼回來排順序。

報告完要記分、合成學期成績時,可以用學期成績計算器算平均與加權平均。

交換禮物抽籤:怎麼配對才不會抽到自己

交換禮物有兩種抽法,查詢時常混在一起。第一種是事先指定「誰送給誰」(小天使、秘密聖誕老人那一類):用本頁的「交換禮物(不抽到自己)」模式。第二種是大家把禮物放在一起,現場抽號碼決定誰先挑:用「排順序」,把名單打亂,從上到下就是挑禮物的順序。

用法:貼上參加者名單(同名的人請加座號或代號),選「交換禮物(不抽到自己)」,按「配對」。預設會先遮住收禮者,每個人按自己那一列的按鈕看抽到誰,看完按「隱藏」再把畫面交給下一位;取消勾選則全部直接顯示。至少要 2 個人。

「每個人都送給別人、每個人都剛好收到一份、沒有人抽到自己」的配法,數學上叫錯排(derangement)。本頁的做法是:把整份名單洗牌成一種「誰送給誰」,只要有人抽到自己,這一整次就丟掉重洗。每種洗牌結果出現的機會原本相同,所以留下來的每一種「沒有人抽到自己」的配法,出現的機會也相同。

不抽到自己的配法有幾種(D(n)=(n−1)×(D(n−1)+D(n−2)),D(1)=0、D(2)=1)
人數不抽到自己的配法全部配法(n!)洗一次牌就合格的機率
21250.00%
32633.33%
492437.50%
54412036.67%
626572036.81%
101,334,9613,628,80036.79%

人數再多,合格機率都約 36.79%(1÷e),所以不管幾個人,平均洗約 2.7 次就會有合格的配法。3 人 2 種、4 人 9 種、5 人 44 種的數字,與 OEIS A000166 的數列(1, 0, 1, 2, 9, 44, 265, 1854, 14833, 133496, 1334961)一致;Wikipedia 的 Derangement 條目也用 4 位學生互相改考卷的例子說明 24 種裡有 9 種。專案的自動測試把程式的每一步亂數選擇全部列舉:3 人的 2 種與 4 人的 9 種各自出現的機會完全相同。

  • 為什麼不用「輪流抽,抽到自己就放回重抽」?這個直覺做法對各種配法並不公平。以 A、B、C 三人為例(每人依序從剩下的籤抽,抽到自己就放回;最後一個人若只剩自己的籤,整輪重來):A→B、B→C、C→A 的機率是 1/3,A→C、C→B、B→A 的機率是 2/3,兩種合格配法差一倍。4 人時,9 種合格配法的機率從 2/31(6.45%)到 6/31(19.35%),均勻的話每種應是 1/9(11.11%)。本頁的洗牌後檢查沒有這個問題。
  • 只保證沒有人抽到自己,不保證 A 與 B 不會互相抽到對方:4 人的 9 種配法裡有 3 種是兩對互換(A↔B 且 C↔D 之類),也就是 1/3 的機會;5 人的 44 種裡有 20 種(約 45.45%)有一對互換。2 人只能互換。
  • 沒有「夫妻不要抽到彼此」「同部門不要抽到同部門」這類排除條件;有條件時,建議抽完後自行對調並告知當事人。
  • 同名的兩行是兩位參加者,工具只保證「同一行」不會抽到自己,兩位同名者可能抽到對方;請先加座號或代號。
  • 操作這個頁面的人看得到全部配對,遮住結果只是讓旁人與其他參加者不會看到別人的結果。要連主辦人都不知道,這個工具做不到,請各人自己操作並只看自己的那一列。
  • 名單與結果只在瀏覽器裡處理,不上傳;關閉或重新整理頁面就消失,按「複製結果」會複製完整的配對清單(含所有收禮者),請只傳給主辦人。

這個頁面的亂數怎麼來,以及它不能保證什麼

程式沒有使用 Math.random(),而是用瀏覽器提供的 crypto.getRandomValues 取得 32 位元亂數。要從 n 個位置選一個時,先把大於等於 ⌊2³²÷n⌋×n 的亂數丟掉重抽,再取餘數;這樣做是為了避免「直接取餘數」讓小的餘數略多一點機會(Wikipedia 的 Fisher–Yates shuffle 條目把這個問題稱為 modulo bias)。排列則用 Fisher–Yates 洗牌:n 個人的 n!種排列,在亂數來源均勻的前提下,每一種出現的機率相同。

照實說明限制:MDN 寫明瀏覽器的 getRandomValues 不是真正的隨機數產生器,而是用有足夠熵的種子啟動的偽亂數產生器,演算法因瀏覽器而異;W3C 規格也沒有規定最低的熵。所以本頁能說的是「程式沒有偏心」,不能說「通過任何公平性檢驗」,我們也沒有對各瀏覽器的亂數來源做獨立的統計檢定。專案的自動測試只驗證程式邏輯:把 Fisher–Yates 每一步的選擇全部列舉出來,3 人與 4 人的所有排列(6 種、24 種)各恰好出現一次。

按下按鈕的當下結果就已決定並顯示,沒有轉盤或動畫,也沒有「再抽一次」的暗門;工具不保存紀錄,要留存請自己複製。這是日常抽籤用的工具,不是公證抽獎或有法律效力的抽籤流程。

抽籤順序會影響中籤機率嗎

常見的疑問是「後面抽的人是不是比較吃虧」。假設 30 張籤裡只有 1 張有獎,籤已充分混合,大家依序抽、不放回:第 1 位的機率是 1÷30;第 2 位要「第 1 位沒中」且「自己抽中」,機率是 29÷30 × 1÷29=1÷30;第 30 位是 29÷30 × 28÷29 × … × 1÷2 × 1=1÷30。事前來看,每個位置的機率都是 1÷30=3.33%。

但如果前面的人已經公開抽完、都沒中,後面的人就知道自己的機會變高了:第 2 位在看到第 1 位沒中時,剩 29 張籤,機率變成 1÷29。所以「先抽的人吃虧」或「後抽的人吃虧」都不成立,只要籤事先混合均勻、中途不更換規則。

Excel 與試算表怎麼做抽籤、不重複和分組

不想用工具,用試算表也做得到。假設座號 1 到 30 放在 A2:A31。Microsoft 的說明:RAND 傳回大於或等於 0 且小於 1 的隨機實數,RANDBETWEEN 傳回指定範圍的隨機整數,兩者在每次重新計算工作表時都會產生新的值(在別的儲存格輸入公式或資料、或按 F9,都會重新計算)。Google 試算表的說明頁同樣有 RAND() 與 RANDBETWEEN()。

抽 1 位(可重複;每次重算會換人)
=INDEX(A2:A31,RANDBETWEEN(1,ROWS(A2:A31)))
亂數欄(B2 往下填到 B31)
=RAND()
名次欄(C2 往下填到 C31;每人得到不同的 1 到 30)
=RANK(B2,$B$2:$B$31)
不重複抽 3 位(D2 往下填;名次 1 到 3 的人顯示「抽中」)
=IF(C2<=3,"抽中","")
隨機分成 6 組(E2 往下填;結果是 1 到 6 的組別)
=MOD(C2-1,6)+1
Microsoft 365 的一條公式打亂整份名單(依 SORTBY 說明頁的 RANDARRAY 搭配 COUNTA 用法)
=SORTBY(A2:A31,RANDARRAY(COUNTA(A2:A31)))
  • 驗算:上面前五條公式在 LibreOffice Calc 24.2 重新計算 3 次,每次的結果都不同,但名次欄的總和都是 465(1+2+…+30)、不同名次剛好 30 個、「抽中」剛好 3 人、6 組各 5 人。最後一條公式用到 RANDARRAY,LibreOffice 24.2 不支援,本站沒有執行過,請在 Microsoft 365 自行確認。Google 試算表也沒有逐條執行過。
  • 陷阱一:用 RANDBETWEEN 抽「不重複」是做不到的,每個儲存格各抽各的,30 人抽 3 位有 9.78% 的機會出現重複,抽 5 位約 29.63%。要不重複,請用亂數欄加名次欄的做法。
  • 陷阱二:RAND 每次重算都會變,抽完請把結果複製、以「值」貼上固定下來,否則下一次編輯儲存格,名單就換了。
  • 陷阱三:RANK 遇到兩個相同的亂數會給同一個名次;機率極低,萬一發生,按 F9 重算一次即可。

常見錯誤

下面這些是用抽籤工具時最容易出狀況的地方:

  • 名單沒有先清理:缺席的人、重複的人、不符合資格的人還在裡面,抽出來才發現要重抽。
  • 以為「不重複」會跨頁面、跨天保存。重新整理頁面就歸零;要連續幾堂課輪完全班,請自己記錄抽過的人。
  • 把它當成點名系統:本工具只負責「抽到誰」,不記錄出席、缺席或遲到。
  • 交換禮物配對用「抽人」模式一個一個抽:會抽到自己,後面的人還可能只剩自己的名字。請改用「交換禮物(不抽到自己)」模式。
  • 用逗號分隔卻含有逗號的名字,被拆成兩個候選人。
  • 抽到缺席者就重抽:這等於把缺席者從名單拿掉,其他人的機會仍然相同,但最好事前跟大家說好規則。

公式與計算方式

分組人數:每組 ⌊n÷g⌋ 或 ⌊n÷g⌋+1 人,前 (n mod g) 組多 1 人;每組 k 人時 g=⌈n÷k⌉。交換禮物:不抽到自己的配法數 D(n)=(n−1)(D(n−1)+D(n−2))

n 是名單人數,g 是組數。交換禮物是洗牌後檢查有沒有人抽到自己,有就整次重洗。抽人與洗牌都用 crypto.getRandomValues 取得 32 位元亂數,丟掉 ⌊2³²÷m⌋×m 以上的值後取餘數,得到 0 到 m−1 的均勻整數(m 是當下可選的位置數)。

方法與資料來源

  • W3C Web Cryptography API:getRandomValues :規格定義 getRandomValues 產生「cryptographically strong random values」,實作建議用安全的偽亂數產生器供應數值。查核日期 2026-10-17。
  • MDN:Crypto.getRandomValues() :說明瀏覽器實作是以足夠熵的種子啟動的偽亂數產生器,演算法因瀏覽器而異,規格沒有規定最低熵。查核日期 2026-10-17。
  • Wikipedia:Fisher–Yates shuffle :洗牌演算法與 modulo bias 的說明;亂數來源無偏時,每種排列出現的機率相同。查核日期 2026-10-17。
  • Wikipedia:Derangement :錯排的定義(沒有任何元素在原本位置的排列)、D(n)=(n−1)(D(n−1)+D(n−2))、隨機排列是錯排的機率趨近 1÷e≈0.367879,以及 4 位學生互相改考卷「24 種裡有 9 種」的例子。查核日期 2026-10-17。
  • OEIS:A000166(Subfactorial / derangements) :錯排數數列 1, 0, 1, 2, 9, 44, 265, 1854, 14833, 133496, 1334961, …,並列出兩條遞迴式。查核日期 2026-10-17。
  • Microsoft:RAND 函數 :傳回大於或等於 0 且小於 1 的隨機實數,每次計算工作表都會傳回新值。查核日期 2026-10-17。
  • Microsoft:RANDBETWEEN 函數 :傳回指定範圍內的隨機整數,重新計算時產生新的值。查核日期 2026-10-17。
  • Microsoft:SORTBY 函數 :頁面範例示範用 SORTBY 搭配 RANDARRAY 與 COUNTA 把值的清單任意排列。查核日期 2026-10-17。
  • Google 文件編輯器說明:RAND :Google 試算表的 RAND() 傳回 0 與 1 之間的亂數(含 0 不含 1)。查核日期 2026-10-17。
  • Google 文件編輯器說明:RANDBETWEEN :Google 試算表的 RANDBETWEEN 傳回兩個值(含首尾)之間的均勻整數亂數。查核日期 2026-10-17。

如何使用

  1. 把名單貼進文字框,一行一位候選人;預設是座號 01 到 30,可按「清空名單」換成自己的。
  2. 選模式:「抽人」「隨機分組」「排順序」或「交換禮物(不抽到自己)」。抽人要設定人數,以及「不重複」或「可重複」;分組要設定組數或每組人數;交換禮物只需要名單(至少 2 人)。
  3. 按下按鈕產生結果。結果出現當下就已決定,沒有重抽;需要保留請按「複製結果」。
  4. 要從頭再抽一輪,按「重新開始」;名單不變,只清掉已抽出的紀錄。

常見使用情境

  • 老師貼上 30 個座號,抽 3 位同學回答問題,抽過的不再出現,下一題接著抽。
  • 把全班分成 6 組做小組討論,再用「排順序」決定各組上台順序。
  • 預設的 30 個座號直接按「抽 3 位」,確認機率是 3÷30=10% 之後再貼自己的名單。
  • 8 位同事交換禮物:貼上 8 個名字,切到「交換禮物(不抽到自己)」按「配對」,每人按自己那一列的按鈕看抽到誰;沒有人會抽到自己。

內容與驗證流程複查:

線上抽籤點名工具 的驗證方法與判讀界線

✓

這一段針對抽籤工具目前的設定:名單文字框、四個模式(抽人、隨機分組、排順序、交換禮物)、「抽過的人」選單與「重新開始」按鈕。預設是座號 01 到 30。

先用預設值核對「不重複」

不改任何設定,連按三次「抽出」(預設抽 3 位、不重複):狀態列會依序顯示「已抽出 3 位,剩 27 位」「已抽出 6 位,剩 24 位」「已抽出 9 位,剩 21 位」,而且九個座號都不會重複。按「重新開始」後回到「已抽出 0 位」,名單不變。

切到「可重複」確認同一人可以再被抽到

把「抽過的人」改成「可重複」,抽數改成 10,多按幾次:10 位裡有人出現兩次以上的機率約 81.54%,所以大多數時候下方會出現「同一位候選人出現了不只一次」的提示,狀態列不再顯示剩餘人數。

分組、排順序與交換禮物的核對

切到「隨機分組」按「分組」:預設 6 組,每組標題都是「(5 人)」,全部加起來 30 人。把名單改成 31 行再分,第 1 組會是 6 人、其餘 5 人。切到「排順序」,結果是同一份名單的 30 個號碼各出現一次。切到「交換禮物(不抽到自己)」按「配對」:收禮者先被遮住,按「看 01 抽到誰」才顯示,而且不會是 01 自己;取消勾選「先遮住」,30 個座號各當一次收禮者。把名單改成 3 行再多按幾次,只會看到兩種配法:01→02→03→01 或 01→03→02→01。

完成前檢查清單

  • 名單沒有重複的名字;有的話頁面會在名單下方警告,並已加上座號區分。
  • 缺席者已先從名單刪除;刪除或修改名單會讓「已抽出」歸零。
  • 用「不重複」時,知道重新整理頁面會歸零,連續多堂課要自己記錄。
  • 分組人數除不盡時,已接受各組最多差 1 人,且人數較多的組排在最前面。
  • 做交換禮物時,已知道工具不保證兩個人不會互相抽到對方,操作的人看得到全部配對,同名者已加上座號。
  • 需要公證或有金額的抽獎時,已另外準備公告規則與錄影;本工具不保存紀錄。

工具驗證與限制

這些公開頁面說明本站如何檢查公式、邊界值、資料處理與輸出;它們不是第三方認證,也不取代你對正式結果的複核。

注意事項

  • 名單只在你的瀏覽器裡處理,不會上傳;重新整理或關閉頁面後,名單與結果都會消失。
  • 本頁不是公證抽獎。獎金、法律效力或爭議情境,請搭配公告規則、錄影與第三方見證。
  • 公開投影時建議用座號或代碼,避免把完整姓名秀在螢幕上。
  • 交換禮物模式不保證 A、B 不會互相抽到對方,也沒有排除條件;操作的人看得到全部配對。

常見問題

抽籤不重複怎麼設定?
在「抽人」模式把「抽過的人」選成「不重複」(預設)。抽過的人這一輪不會再被抽到,直到按「重新開始」、改名單或重新整理頁面。
名單會上傳到伺服器嗎?
不會。名單與結果都在你的瀏覽器裡處理,FunnyTools 不接收、不保存。代價是重新整理頁面後資料就沒了。
分組時人數除不盡怎麼辦?
各組最多差 1 人:n 個人分成 g 組,前面 n 除以 g 的餘數那幾組多 1 人。例如 31 人分 6 組是 6、5、5、5、5、5。
電腦抽籤公平嗎?
程式本身沒有偏心:用瀏覽器的 crypto.getRandomValues、丟掉會造成偏差的值、再用 Fisher–Yates 洗牌。但瀏覽器的亂數是偽亂數,本頁沒有做獨立的統計檢定,也不是公證流程;名單是否完整、規則是否事先公布,影響公平的程度比亂數更大。
交換禮物怎麼抽才不會抽到自己?
切到「交換禮物(不抽到自己)」模式:工具把名單洗牌成一種「誰送給誰」,有人抽到自己就整次重洗,所以結果一定沒有人抽到自己,而且每一種合格配法的機會相同。3 人有 2 種、4 人有 9 種。它不保證 A、B 不會互相抽到對方。
可以用來抽尾牙獎品或公開抽獎嗎?
日常小活動可以。有金額或法律效力的抽獎,請另外公告規則、保留錄影與名單,並由第三方見證;本工具不保存任何紀錄。

隱私與本機處理

🔒 此工具完全在您的瀏覽器本機執行,不會將任何資料上傳到伺服器。

你貼入的名單與抽選結果完全在瀏覽器本機處理,不會上傳到本站或第三方伺服器。關閉或重新整理頁面後資料即消失。

信任與使用提醒

本工具主要在你的瀏覽器中執行,輸入內容不會主動上傳到伺服器。請避免輸入高度敏感資料。計算結果僅供參考。

免責聲明

本工具供課堂、活動與日常小決定使用,不是公證抽獎,也不保存任何紀錄。

最後更新:

嵌入這個工具

訂閱更新

新工具上線與實用技巧,第一時間寄到你的信箱。不塞廣告,隨時可退訂。