The question of whether loot drops from bosses are "random" is regularly brought up on Blizzard's discussion forums, usually followed by a lot of "armchair statistics" attempting to reinforce a position. This article is a brief attempt to informally explain random numbers and how they are used in World of Warcraft. No mathematics are done here, and many details are glossed over. This is an extremely relaxed explanation rather than a textbook.
PRNG and Seeding
A PRNG (pseudo-random number generator) is a computer's way of generating numbers that appear to be random, but are actually based on what seed was used to generate them.
The seed is the most important thing in a PRNG function. To generate numbers, computers first require some kind of input, known as the Seed. The seed can be thought of just like an actual seed from a plant - the thing that everything grows from. However, in this case, a random number or set of random numbers grows from the seed.
A batch of mathematical functions can be applied to the seed by a PRNG (pseudo-random number generator) algorithm to convert it into presentable output. As a result, since the seed must be a physical quantity obtained from somewhere, it is impossible for a computer to generate a completely random number. However, since the seeds used in the majority of PNRG functions cannot be predicted by humans, numbers generated with them are considered random for all functional purposes.
In order for the numbers produced by the PRNG to appear as random as possible, an unpredictable number must be used as the seed. This could be an erratic number, like digitized white noise from a radio telescope aimed at a source of X-rays, or the electrical noise on your hard drive cables, or a digitized image of an unpredictable process, and so on. (The most famous example of the last was Silicon Graphics pointing a webcam at a table full of Lava Lamps, and then pulling numbers of the image's bitstream.)
You can also use a seed that isn't ambivalent but can be measured with enough accuracy to not be influenced or predictable. The time is a good example of this. A computer can produce the current time to millisecond accuracy. Due to the inherently chaotic nature of PRNGs, a small change in time results in a completely different output. Since time seeds are easily obtainable without special equipment, they are the seed of choice in many of today's applications .
Some players like to believe that they have influence over the seed, and can alter which loot they get by having a different raid leader, for example. However, Blizzard has already pointed out that this is not the case. See #2 under Things To Remember for why.
Blizzard posting an article shortly after the game was released, describing how "rolls" are done. Much of that article is not directly related to this topic, but it does describe which PRNG is in use. It is called IBAA, and source code is available.
Things To Remember
A few things that players typically forget — or would prefer to not think about — when arguing over "randomness" of loot:
- Players forget, or are unaware, that streaks are a normal part of PRNGs. The same Blizzard article mentioned above has a short explanation. Another post in the customer service forum gives a clear example.
- Much of the misinforation and arguing about the loot system starts because players want to feel that they have some influence over every aspect of the game, giving us the observation "luck is probability taken personally". This psychological aspect is common and has been well-studied.
- The same stream of random numbers determining loot also determines the base damage of your weapon for each swing, whether your attack misses, crits, gets resisted, whether you dodged or blocked or got crit, etc. But all of those things can be influenced by a player's choice of gear and buffs and consumables, so you don't hear players whining about "every time we raid, that type of mob blocks an attack, so it must be our raid leader's raid ID". Instead, they put on different gear, or drink a different potion, or change their talent specs. It's only the loot tables that we can't affect, so it's only the loot results where we start dreaming up ways to affect them — and then pretend that they must be affected, because we decided so.
- Random does not mean fair. Random refers to results over the entire realm, not your guild nor your character.