LibTrueRandom-1.0 is a library that provides a way to asynchronously retrieve random values by making /roll requests.
LibStub("LibTrueRandom-1.0").GetRandom(1, 1000, function(value) -- value will be a number >= 1 and <= 1000 here end)
Here's the use case for this library:
- You're in a guild or a raid and you want to randomly choose someone to get loot or for some other reason
- You can't use math.random, since other users in the group might think you are returning bad data thus weighting yourself or friends over them.
- Doing a /roll is safe and secure, since it's executed server-side and can't be weighted by client-side code.
- You print to the raid chat: "Rolling for phat lewt - 1: Monkeyman 2: Bananadude 3: Awesomeo"
- /roll 1 3
- Myguy rolled 2 (1-3) - executed server-side
- Bananadude is awarded the "phat lewt" programmatically (with the callback function provided)
- The three know that they had equal chances to get the item, knew what number they corresponded to, and knew who was the winner due to the public display of the /roll, so there is full transparency and hopefully no whining about "hax".