pairs = [(0.3, 'a'), (0.3, 'b'), (0.4, 'c')]
probabilities = numpy.random.multinomial(n, zip(*pairs)[0])
result = zip(probabilities, zip(*pairs)[1])
Как сделать взвешенную случайную выборку категорий в python