塔羅線上抽牌系統怎麼運作?公平、隨機、可驗證的抽牌原理
· 7 分鐘閱讀
線上抽牌真的隨機嗎?自己選牌會不會比較準?本篇用白話說明塔羅線上抽牌系統怎麼產生亂數、怎麼洗牌、為什麼要先公開種子雜湊,以及逆位怎麼決定、「可驗證」代表什麼,並以 ORAE 的抽牌引擎為例。
在網站上點開一整排背面朝上的牌,選三張、翻開,你可能會想:這些牌真的是隨機的嗎?網站會不會事先「安排」好結果?我親手選的牌,和系統直接發的有差嗎?這篇用白話說明一個好的塔羅線上抽牌系統是怎麼運作的,並以 ORAE 的抽牌引擎當例子。不需要數學背景,只要掌握幾個關鍵觀念,你就能自己判斷一個抽牌系統可不可信。
好的塔羅線上抽牌系統,要回答三個問題
- 牌是怎麼變亂的? 亂數從哪裡來、洗牌的方法對不對。
- 結果有沒有可能被動手腳? 在你選牌之後,網站能不能偷偷換掉牌。
- 事後查得到嗎? 同一次占卜能不能被重新計算、互相核對。
先說清楚:這三個問題處理的是「抽牌公不公平」,不是「塔羅準不準」。後者比較像心理與詮釋的問題,可以參考 塔羅準嗎?。
隨機從哪裡來:Math.random 與安全亂數的差別
電腦是照指令運作的機器,大部分的「隨機數」其實是偽隨機:從一個起始值(種子)出發,用固定的公式算出一長串看起來很亂的數字。種子一樣,算出來的數字就一樣。
Math.random 是 JavaScript 內建的亂數函式,拿來做動畫或小遊戲很方便。但語言規格並沒有要求它達到密碼學等級的安全,各家實作以速度為優先;理論上,觀察到足夠多的輸出後,有可能推算出接下來的數字。如果整個隨機抽牌的過程都在瀏覽器裡用它完成,事後通常也沒有任何可以查核的紀錄。
CSPRNG(密碼學安全偽隨機數產生器)則不同。作業系統會從硬體與系統事件中收集難以預測的因素,產生的亂數即使看過前面的輸出,也無法推算下一個。加密連線、網路銀行用的都是這一類。
ORAE 的做法是:當你按下「開始洗牌」,伺服器用作業系統的 CSPRNG 產生一組 256 位元的種子,可能的值約有 1.16×10⁷⁷ 種。接著以這顆種子為金鑰,搭配不斷遞增的計數器做 HMAC-SHA256 運算,產生一長串亂數,這種設計稱為 DRBG(確定性隨機位元產生器)。好處是:知道種子的人可以完整重算,不知道種子的人則無從預測。
洗牌:Fisher–Yates 為什麼是標準做法
有了亂數,還要用對的方法洗牌。Fisher–Yates 洗牌的步驟很簡單:從最後一張牌開始,在「還沒固定的牌」裡隨機挑一張和它交換,然後把這個位置固定;再往前一張,重複同樣的動作,直到第一張。78 張牌共做 77 次交換,每一種排列出現的機率都完全相同。
聽起來很直覺,但有兩個常見的錯誤會讓洗牌悄悄失準:
錯誤一:每一張都和「整副牌的任一張」交換
以 3 張牌為例,這種做法有 27 種同樣可能的過程,卻要分給 6 種排列。27 不能被 6 整除,結果有些排列出現的機率是 5/27(約 18.5%),有些只有 4/27(約 14.8%),而公平的機率應該是 1/6(約 16.7%)。
錯誤二:取餘數造成的偏差
假設用一個 0 到 255 的亂數除以 78 取餘數來選牌。因為 256 = 3×78 + 22,前 22 張牌各有 4/256(約 1.56%)的機會,其他牌只有 3/256(約 1.17%),前面的牌被抽中的機會多了三分之一。ORAE 用的是「拒絕取樣」:每次要在 n 張牌中挑一張時,把落在 n 的整數倍範圍之外的亂數直接丟掉重抽,讓每個結果的機率完全相等。
補充一個細節:78 張牌的排列方式約有 1.13×10¹¹⁵ 種,比 256 位元種子的數量還多,所以理論上不是每一種完整牌序都會出現。但你實際看到的最多是 12 張牌,連同正逆位約 8.5×10²⁵ 種結果,每一種結果背後都對應極大量的種子,在實務上仍可視為完全均勻。
先承諾、後揭曉:種子雜湊是什麼?
想像魔術師在表演前把答案寫在紙上、封進信封交給觀眾保管,表演結束才拆開。SHA-256 雜湊就是那個信封:同一顆種子永遠算出同一串 64 個字元的雜湊值,但從雜湊值反推種子,在現實上做不到。
在 ORAE,這個流程是這樣的:
- 按下「開始洗牌」:伺服器產生種子並保存,同時算出它的 SHA-256 雜湊,也就是「承諾值」。這時傳到你瀏覽器的只有雜湊,沒有種子。
- 洗牌、選牌或切牌的畫面:下方會先公開完整的「抽牌前先公開的隨機種子雜湊」,這時還沒有任何一張牌發出,可以先截圖或抄下來。
- 你選牌或切牌:你的選擇送回伺服器,用那顆早已固定的種子洗牌、取牌;翻牌畫面下方會再顯示一次雜湊的前 16 個字元。
- 結果頁:展開「抽牌驗證資訊」,可以看到抽牌引擎版本、牌義版本固定、解牌規則版本,以及完整的「種子雜湊」和「seed」(種子本身)。
想自己檢查,可以把 seed 這串十六進位文字轉回 32 個位元組,算一次 SHA-256,結果應該和種子雜湊完全一致。一致,就代表種子在你選牌之前已經固定,事後沒有被換掉。
也要誠實說明一個限制:承諾機制證明的是「種子在你選牌前就已固定、事後沒有被替換」,至於種子是不是真的來自安全亂數,仍要依靠系統公開的設計;想嚴格比對,記得在發牌前先記下畫面上公開的雜湊。
自己選牌、切牌,會改變機率嗎?
不會。洗好的牌序只存在伺服器上,你看不到。選「親手選牌」時,你點的是「第幾個位置」;選「互動式切牌」時,你決定的是「從第幾張切開」。這些位置對應到的,是一副已經均勻打亂、而你完全看不到的牌。
就像有人把 78 張牌徹底洗好、背面朝上攤在桌上,不論你偏好挑左邊、右邊,或每次都挑第一張,任何一張牌出現在第一個位置的機率都是 1/78。ORAE 的測試也特別檢查了「永遠選同一個位置」的情況,抽到的牌依然均勻分布;三種方式在數學上和自動發牌完全等價。
既然機率一樣,為什麼還要讓你選?因為儀式感能幫助專注。就像 女祭司 身後的帷幕,牌在翻開之前保持未知,這段等待本身就是占卜體驗的一部分。
另外,你輸入的問題文字、是否為會員,都不是抽牌的輸入,不會影響抽到哪張牌。
正位還是逆位?逆位怎麼決定
每張牌的正逆位各自獨立決定:系統另外取一個 0 到 999,999 之間的亂數,小於 500,000 就是逆位,所以預設正逆位各 50%。不論哪種抽牌方式,這一步都固定消耗同樣多的亂數,因此你選了哪個位置,也不會影響正逆位。選「僅正位」時,所有牌一律正位。
照這個比例,三張牌全部正位的機率是 1/8(12.5%),至少出現一張逆位的機率是 87.5%;十張牌剛好五正五逆的機率約 24.6%。換句話說,逆位很常見,不必一看到就緊張,讀法可以參考 正位與逆位。實體牌的逆位則來自洗牌時把部分牌轉向,比例不一定剛好一半,可以對照 塔羅怎麼洗牌與切牌。
「可驗證」到底代表什麼?
- 可以重算:同一顆種子、同一副牌的標準順序、同樣的選牌位置或切點,用同一個抽牌函式算出的結果必定相同。ORAE 會把結果、你的選牌或切點、整副牌序快照、引擎版本、牌義版本與規則版本一起保存,讓每次抽牌都能被追溯。
- 只抽一次:重複送出、連按兩下、網路重試或重新整理,拿回的都是同一次結果;想再問一次,就是開一次新的占卜,而不是改寫上一次。
- 不代表會說中:可驗證證明的是「這次抽牌沒有被動手腳」,不是「牌一定說中未來」。為什麼有時候會覺得「好準」,可以讀 塔羅為什麼會說中。
對照表:需要留意的做法與比較好的做法
| 項目 | 需要留意的做法 | 比較好的做法 |
|---|---|---|
| 亂數來源 | Math.random,或用時間當種子 | 作業系統的安全亂數(CSPRNG) |
| 洗牌方法 | 和任一張交換、用亂數排序、直接取餘數 | Fisher–Yates 洗牌加上拒絕取樣 |
| 牌序 | 選牌前就能在網頁原始碼裡看到 | 事先打亂且不公開 |
| 問題文字 | 拿問題或生日當種子,同一個問題永遠同樣的牌 | 問題不是抽牌的輸入 |
| 重新整理 | 重新整理就換一組牌 | 一次占卜只抽一次 |
| 正逆位 | 比例不明 | 每張獨立判斷,比例公開 |
| 事後查核 | 沒有任何紀錄 | 先給雜湊、事後公開種子、保存版本 |
| 方法說明 | 完全不提 | 公開說明原理 |
這張表也可以拿來檢查任何網站,更多挑選重點整理在 線上塔羅牌占卜網站怎麼挑。
公平的抽牌,是好占卜的起點
正義 的天秤提醒我們,事情應該依照它真實的樣貌被衡量;命運之輪 則提醒我們,機運本來就在轉動。一個好的抽牌系統,負責讓「轉動」這件事公平、透明;至於牌面對你有什麼意義,仍然要靠你自己的思考與行動。
想親自看看驗證資訊長什麼樣子,可以到 線上塔羅占卜 抽一次牌,再到結果頁展開「抽牌驗證資訊」;只想快速體驗,也可以先 抽一張牌。
常見問題
線上抽牌是真的隨機嗎?
取決於網站的做法。ORAE 以作業系統的安全亂數產生 256 位元種子,再用 HMAC-SHA256 產生亂數、以 Fisher–Yates 洗牌並搭配拒絕取樣,讓 78 張牌的每一張被抽到的機率都相同。
親手選牌會不會比自動發牌準?
機率完全一樣。牌序在你選擇之前就已經打亂且不公開,你點的只是位置,所以不論怎麼選,每張牌出現的機會都相同。選牌的價值在於儀式感與專注,而不是改變結果。
種子雜湊和 seed 在哪裡看?
洗牌、選牌或切牌的畫面下方,會在發牌前先公開完整的種子雜湊;翻牌後也會再顯示前 16 個字元。進入結果頁後,展開「抽牌驗證資訊」,就能看到完整的種子雜湊與 seed,以及抽牌引擎和解牌規則的版本。
為什麼每日運勢一整天都是同一張牌?
每日運勢刻意設計成同一個人、同一天結果固定:它用伺服器的密鑰加上你的帳號或裝置與日期推導出種子,所以重新整理也不會變。這和一般占卜每次重新產生種子是不同的機制,詳見 每日運勢。
抽牌公平,是不是代表占卜一定準?
不是。公平只代表牌沒有被安排或替換;牌面對你的意義,仍取決於問題怎麼問、你怎麼解讀與行動。建議把塔羅當作整理想法的工具,而不是對未來的保證。
用 ORAE 實際抽一次
免費、不用註冊、不使用 AI,固定規則解牌。