Bringmann, K., & Panagiotou, K. (2017). Efficient Sampling Methods for Discrete Distributions. Algorithmica, 79(2), 484-508. doi:10.1007/s00453-016-0205-0.