Na początek musimy w pewien sposób zdefiniować monetę. Interesuje nas tylko to, że moneta posiada dwie strony nazywane ,,orzeł'' i ,,reszka''. Pozostałe jej cechy są nieistotne. Musimy te 2 przypadki jakoś zidentyfikować w programie. Dla przykładu, poniżej używamy tekstowych etykiet "ORZEŁ" i "RESZKA". Mogą to być jednak jakiekolwiek dwie inne etykiety, np. liczby 0 i 1, symbole o i r lub cokolwiek innego dopuszczalnego przez składnię danego języka programowania. W Mathematice możemy nawet wykonać fotografie i użyć w tym celu obrazów orła i reszki.

moneta={"ORZEŁ","RESZKA"}

Kolejnym etapem jest umiejętność wykonania ,,rzutu''. W Mathematice mamy do tego celu specjalne polecenie RandomChoice (ang. losowy wybór ), które z równym prawdopodobieństwem wybiera losowo jeden z elementów podanej listy, np:

RandomChoice[moneta] (* Wynik za każdym razem może być inny: prosze spróbować uruchomić to polecenie kilka-kilkanaście razy *)

Interesuje nas przypadek 20 rzutów w serii; można tu użyć RandomChoice, drugi argument podaje ile razy będzie losowanie, a wynikiem jest lista zdarzeń, którą zapisujemy do zmiennej rzut20:

rzut20=RandomChoice[moneta,20]

Zdarzeniem które nas interesuje jest wystąpienie 7 ,,RESZEK'', musimy więc ustalić ile ich jest. Można do tego celu wykorzystać polecenie Count (ang. policz)

Count[rzut20,"RESZKA"]

Aby ustalić, czy trafiliśmy 7 ,,RESZEK'' sprawdzamy czy instrukcja Count dała wynik równy 7 za pomocą instrukcji warunkowej If. 
Jeżeli trafimy 7 reszek, wypisany zostanie wynik drugiego argumentu instrukcji warunkowej, czyli odpowiedni komunikat ("7 reszek"), w przeciwnym wypadku trzeci argument czyli tekst "Nie udało się":

If[Count[RandomChoice[moneta,20], "RESZKA"]==7, "7 reszek", "Nie udało się"] (* Proszę spróbować kilkanaście razy, w końcu się uda *)

Aby wykonać symulację MonteCarlo, czynności powyżej należy powtórzyć setki razy i zliczyć zdarzenia sprzyjające:

iloscLosowan=1000; (* tyle razy zostanie wykonane losowanie; testowane do 1000000*)
licznikZdarzen=0; (* to jest licznik zdarzen sprzyjajacych, gdy wylosujemy 7 reszek dodamy do niego 1 *)
For[k=0,k<iloscLosowan,k++,
If[Count[RandomChoice[moneta,20], "RESZKA"]==7, licznikZdarzen++]; 
]

licznikZdarzen (* ilość zdarzeń sprzyjających *)

p=N[licznikZdarzen/iloscLosowan] (* przybliżone prawdopodobieństwo *)

pDokl=N@Binomial[20,7](1/2)^7 (1/2)^(20-7) (* wynik dokładny - schemat Bernouliego, Binomial  to symbol Newtona *)

(p-pDokl)/pDokl (* błąd symulacji *)