I'm fairly confident that your guess is the correct one: manufacturing issues.
If each minifigure of a series were to be produced separately, they would be considered as 16 different sets for all production and inventory purposes. As a box, they are considered as only one set, which suits LEGO better as there is less overhead.
Logistically, it makes sense too. If the retailers needed to buy individual minifigs, they might not want to bother (especially if they still have to buy boxes of 60, for example), whereas buying a few boxes of random minifigs isn't usually a problem.
You'll find a similar example with train track: when LEGO introduced RC (plastic) track, they decided to sell straight and curved track pieces together in a box. That decision makes absolutely no sense at all, except to reduce the number of boxes in production. They managed to correct this a little by replacing the curved tracks with flex-track in recent boxes (curves aren't sold separately anymore, which is just fine); but they still have only one box of supplemental track (points nonwithstanding).
That said, this reasoning doesn't actually fully hold. The content of minifig boxes appears to be fixed (which makes sense for production purposes), so nothing prevents them from marking which minifig is in which bag, and it wouldn't make much difference for retailers.
But LEGO doesn't do that. In fact, they even actively stopped doing it, as the first two series were easily identifiable through a barcode. When LEGO noticed fans had discovered this, they resorted to other, more hidden methods. Which proves they want it to be random, and we still have to find out why.
Again, production issues can help explain this: if custoemrs can pick their minifigs, retailers left with leftovers of unwanted minifigs may not be as keen to buy more boxes of the next series.
But to be honest, I think LEGO really wanted the randomness to be there to start with, simply because they want children (their target demographic, let's not forget this) have the fun of discovering what they got, and try to get them all one way or the other.