Take a look at Rolling a biased die.
In reply to Re: Weighted random numbers generator by abell in thread Weighted random numbers generator by spurperl