How Procedural Algorithms Produce Fairly Distributed Random Loot Systems in Games