Your definition of success is just an excuse for bad software, with the reasoning being "cause RL roulette works like this as well". Reminds me of car analogies.
What you desire is a very basic, boring version of roulette which you can easily make with a few lines of Python code.
random.randrange(0, 4) # number of toppings
random.randrange(1, 100) # this in a loop iterating with result of previous amount, and this from a database where each number representing a topping.
Its much more fun to do some advanced stuff with randomisation such as adding weights, blacklists, whitelists, edible combinations, etc. When you get edible results based on randomisation is when I call it a success.
Second, you're excluding a significant amount of people [1] by not catering to vegetarians. Regardless of your dietary preference this is not done in 2017.
[1] https://en.wikipedia.org/wiki/Vegetarianism_by_country