Random numbers
Any range, any count, with or without repeats. Unbiased — including the modulo bias almost every simple generator has.
The bias almost every generator has
Producing a random number in a range looks like a one-liner and usually is written as one: take a random 32-bit integer, apply a modulo, add the lower bound. That result is not uniform. Unless your range divides exactly into 2³², the lowest values in the range get one extra chance each, because the top of the 32-bit space is truncated unevenly. For a range of 100 the skew is around one part in forty million — invisible in practice, and still wrong.
This generator discards any draw that falls in the uneven tail and redraws. It costs a fraction of a microsecond and it means the uniformity claim on this page is literally true rather than approximately true.
With and without replacement
Rolling a die ten times can give you the same number twice; drawing ten cards cannot. "No repeats" switches between those two models, and choosing the wrong one is the most common mistake with a number generator. If you are picking six numbers for a draw you want no repeats. If you are simulating ten dice you do not.