A Probability Spreadsheet for Diviners, Game Designers and Players


I’ve been designing a bunch of Tarot-based games behind the scenes lately, and was looking for some resources to make sure the mechanics are well balanced.

So about a month ago, I went on Reddit and asked for some book recommendations about the underlying probabilities of card games.

One of the responses I found most helpful was from a user telling me to dive deeper into statistics and calculate them myself. I’m fairly comfortable with Excel and numbers, so… I did just that (and forgot about it until today)!

So I’ve created a Google Sheets document which includes probabilities for:

  • Combinations of D6 (from 1 up to 6 dies)
  • DnD Dice set
  • Playing Cards (52 and 54 cards decks)
  • Tarot Cards (Major Arcana, Minor Arcana, Combined)

All probabilities are presented as fractions and percentages, and I’ve also turned everything into bar charts for the visual learners amongst us.

Here’s a quick legend to help you understand everything:

  • Specific Card: Drawing any single card in the whole deck.
  • Specific Suit (Any Rank): Drawing any card in a suit, no matters its rank.
  • Specific Rank (Any Suit): Drawing any card of a specific rank, no matter its suit.
  • Any Numbered Cards: Drawing any numbered (non-face/court) card of any suit.
  • Any Court Card: Drawing any court/face of any suit.
  • Any Major Arcana: Drawing any Major Arcana card from the whole deck.
  • Any Minor Arcana: Drawing any Minor Arcana card from the whole deck.
  • Within Whole Deck/Within Specific Arcana: Whether the probability is calculated across the whole deck, or by using the Majors and Minors separately.

Also, here’s the Python script I’ve written to figure out the D6 combinations, so have fun with it if you want to double check my work, or if you’re a mad lad who uses more than 7 dice at once.

from collections import Counter
from itertools import product

def calculate_dice_probabilities(num_dice):
    outcomes = list(product(range(1, 7), repeat=num_dice))
    sum_counts = Counter(sum(outcome) for outcome in outcomes)
    total_outcomes = len(outcomes)
    probabilities = {s: (count, total_outcomes) for s, count in sorted(sum_counts.items())}
    return probabilities, total_outcomes

def display_probability_table(num_dice):
    probabilities, common_denominator = calculate_dice_probabilities(num_dice)
    print(f"Sum\tProbability")
    for sum_value, (count, total_outcomes) in probabilities.items():
        print(f"{sum_value}\t{count}/{common_denominator}")

if __name__ == "__main__":
    num_dice = int(input("Enter the number of d6 dice: "))
    display_probability_table(num_dice)

I hope you guys find this document helpful for your divination practices, game development projects and other gaming-related endeavors.

Let me know if you have questions, notice any mistake, or would like to see the stats for other randomizing tools!

Nikodemus of Psykeon 🧙‍♂️🃏

Author


The content of this blog post is for educational and entertainment purposes only. It is not a substitute for professional medical, psychological, or psychiatric advice. The authors make no guarantees about the reliability and outcomes of the information provided. Readers acknowledge the potential risks associated with esoteric and psychonautic practices, and are responsible for minimizing those risks. The authors are not liable for any injuries or damages resulting from the use of the information provided in this blog post.

All content and products contained on, or offered through this website are under the copyright and property of the owners of the website. Any unauthorized use, copy or modification of content and products contained on, or offered through the website is strictly prohibited.



Join Nikodemus’ Newsletter

Latest Posts

Donate


Copyright © 2024 Nikodemus of Psykeon. All Rights Reserved.

error: Content is protected !!