Imagine you are playing a game with your friends where you have to roll a dice and whoever gets the highest number wins. But instead of a normal dice, you have a special one that has different numbers on each side. It's not evenly balanced like a normal dice, and some sides are more likely to come up than others. This is called a non-uniform dice.
Now, imagine you want to play another game where you need to pick a number between 1 and 10, but you don't want to just pick a number at random. You want to pick numbers in a way that's like rolling the non-uniform dice. This is where non-uniform random variate generation comes in.
In math, we use something called probability distributions to describe how likely it is to pick a certain number. Just like how the non-uniform dice has certain sides that are more likely to come up, probability distributions tell us how likely it is to pick a certain number.
To generate a non-uniform random variate, we use something called an algorithm. This is like a set of instructions that tells us how to pick a number based on the probability distribution. It's like following a recipe to make a cake - you need to follow the steps in order to get the right result.
There are different algorithms for different probability distributions, but they all work in a similar way. The algorithm takes a random number (like rolling a normal dice) and uses that number to pick a number from the probability distribution. The more likely a number is, the more likely it is to be picked.
So, to go back to the game, if we wanted to pick a number between 1 and 10 using non-uniform random variate generation, we would first choose a probability distribution that tells us how likely it is to pick each number. Then we would use an algorithm to generate a number based on that distribution. This way, it's like rolling a non-uniform dice and picking a number in a fair and random way, just like the game intended.