First we set up the chocolate randomisation process, again:

chocolate_types<-c("Cherry Ripe","Dairy Milk","Crunchie", "Caramello","Flake")

make_pack<-function(){
  sample(chocolate_types, 8, replace=TRUE, prob=c(25,19,19,18,19))
}

make_pack()
## [1] "Crunchie"    "Cherry Ripe" "Crunchie"    "Flake"       "Dairy Milk" 
## [6] "Cherry Ripe" "Cherry Ripe" "Flake"
make_pack()
## [1] "Cherry Ripe" "Cherry Ripe" "Cherry Ripe" "Caramello"   "Caramello"  
## [6] "Flake"       "Crunchie"    "Dairy Milk"
replicate(5, make_pack())
##      [,1]          [,2]          [,3]          [,4]          [,5]         
## [1,] "Caramello"   "Dairy Milk"  "Dairy Milk"  "Caramello"   "Crunchie"   
## [2,] "Cherry Ripe" "Flake"       "Cherry Ripe" "Cherry Ripe" "Dairy Milk" 
## [3,] "Cherry Ripe" "Flake"       "Caramello"   "Caramello"   "Cherry Ripe"
## [4,] "Crunchie"    "Crunchie"    "Flake"       "Dairy Milk"  "Cherry Ripe"
## [5,] "Flake"       "Cherry Ripe" "Cherry Ripe" "Cherry Ripe" "Crunchie"   
## [6,] "Cherry Ripe" "Caramello"   "Flake"       "Cherry Ripe" "Flake"      
## [7,] "Crunchie"    "Cherry Ripe" "Caramello"   "Dairy Milk"  "Crunchie"   
## [8,] "Crunchie"    "Caramello"   "Flake"       "Cherry Ripe" "Cherry Ripe"

Now, we need to work out whether we have all the bars

got_em_all <-function(a_pack){
  all(chocolate_types %in% a_pack)
}

a_test_pack<-make_pack()
a_test_pack
## [1] "Crunchie"    "Cherry Ripe" "Caramello"   "Crunchie"    "Caramello"  
## [6] "Crunchie"    "Caramello"   "Dairy Milk"
got_em_all(a_test_pack)
## [1] FALSE

And, finally, we take advantage of the power of modern computing by running this a whole heap of times.

a_whole_heap <- 1e5
table(replicate(a_whole_heap, {
  pack<-make_pack()
  got_em_all(pack)
  }
))
## 
## FALSE  TRUE 
## 68744 31256