You asked about the Monte-Carlo simulation method Melody.
Here’s the logic behind my Monte-Carlo simulation of this problem:
- Initialise a tally counter (call it n) to zero. n = 0.
- Generate a set of 11 integers chosen randomly from the integers 1 to 6.
- Check to see if all six occur at least once.
- If they do, increment the tally counter by 1 (n = n+1). If they don’t, don’t increment the counter.
- Perform steps 2 to 4, N times (steps 2 to 4 are known as a trial, so we perform N trials).
- Calculate the fraction n/N. This is the fraction of times that all six digits occurred in randomly generated sets of eleven.
If N is large this fraction approximates the requested probability. Because it is based on the use of a finite number of random numbers the result cannot be taken as exact. Indeed if you plot the ratio n/N as a function of N you will see fluctuations. When N is small these fluctuations are relatively large, but as N gets bigger the fluctuations become relatively smaller (see the figure below for an example set of 100 trials). The accuracy of Monte-Carlo simulations tends to be proportional to the square root of N. For this problem it takes about 100 trials to get one decimal place of accuracy. To get two decimal places (an increase in accuracy of a factor of 10) we need 100 times more trials (i.e. we need 10000 trials), and to get three decimal places of accuracy we need 100 times more again, namely a million trials).
It’s a brute force and ignorance approach, but usually relatively simple to implement. In reality it is used when there is no known analytical method (a common situation in more complicated cases in science and engineering). Here there is an analytical solution, as you have so brilliantly shown, but, for me, the Monte-Carlo approach was quicker and required less brain-ache!!

.