Probability of beginning with 3 lands on initial hand in Magic: the Gathering I am a Magic: the Gathering player and I want to understand the logic and the statistics behind the game.
Let me explain the basics:
A deck contains 60 cards and there is about a third part of those cards need to be land type. (This proportion varies with the type of deck.)
My first question is how to calculate the probability of a starting hand that contains Y (by default 7) cards to have X lands on it (1, 2, 3, etc...).
I assume that after that, with 1 draw each turn the probability of drawing a land type is total_lands - lands in hand divided by the numbers of cards left as it is an independent event, but I might be wrong.
EDIT: Thanks to approbed solution I did the computations and they seem to be well:
from scipy.special import comb
import numpy as np


def compute(desired_lands_in_starting_hand: int, total_land_cards: int, hand_size: int, deck_size: int = 60):
    print(f" Composition of experiment ---> \nYou want {desired_lands_in_starting_hand} lands in {hand_size} cards starting hand")
    print(f"With a total of {total_land_cards} land cards in your {deck_size} cards deck \n")
    k, N, K, n = desired_lands_in_starting_hand, deck_size, total_land_cards, hand_size 
    probability = (comb(K, k, exact=True) * comb(N-K, n-k, exact=True)) / comb(N, n, exact=True)
    print(f" Resulting probability is ---> {np.round(probability, 4) * 100} %")

compute(3, 23, 7, 60)


I remember dabbling with a similar question in the past!
You are looking for the probability of success of WITHOUT replacement: the hyper-geometric distribution Wikipedia link.
You can obtain the probability distribution of getting exactly $k$ successes over $n$ trials (size of your hand) in a population $N$ (your deck size) with $K$ positive outcomes (number of lands). You can do this with suitable programming languages (R, python, Matlab, Stata, Julia...)
If you are not familiar with programming, I think you can find some hypergeometric calculators online as well. I don't want to give you a solution, as I think this is a funny problem to get your hands dirty!
Here is a nice article to dive even deeper: link
