Any programmer can tell you a story or two about how the typical 'throw a dice' or 'flip a coin' program delivered an extremely unlikely output, and even after thousands of dices thrown the variance between results can be pretty high (think 3% or more after 10k throws). The more times you throw it, the more evenly distributed the values will be, but the more likely it will be that you'll find a lot of sequentially repeated values.
Correct.
'Random' means that for each throw of the dice, each possible outcome is equally possible.
When you have a relatively restricted number of possibilities, this can create situations where 'unrandom' results become possible. For example, in SCII, the 'random' race option will frequently have me be the same race 4 or 5 times in row, or flip flopping between two for ten games before I'm FINALLY the third race.
Why? Because each 'roll' occurs completely independently of each other roll. This means that my rolling one race once doesn't reduce my odds of rolling it again the next time.