Если у вас есть взвешенный словарь вместо списка, вы можете записать это
items = { "a": 10, "b": 5, "c": 1 }
random.choice([k for k in items for dummy in range(items[k])])
Обратите внимание, что [k for k in items for dummy in range(items[k])]
создает этот список ['a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'c', 'b', 'b', 'b', 'b', 'b']