Sample Python implementation of Vose Alias algorithm for O(1) selection from a discrete distribution.
Keith Schwarz' writeup "Darts, Dice, and Coins"
From "Non-Uniform Random Variate Generation", Luc Devroye. See Chapter Three - Discrete Random Variates