A friend of mine is starting up a game with over a thousand NPCs - the players play commanders on some ships, and every one of their crew has a character sheet. I'm going to start up a game which is similar only in that it has hundreds of NPCs.
"Why? What possible use can hundreds of NPCs have? How can they all be made interesting in the slightest? You're just using them as tokens when you have that many!"
Actually, the idea is something of the opposite. The idea is that you have all of these tokens, and then you humanize them. It gives the players an emotional connection to the gun crew if the gunnery captain has an interesting personality.
My would-be game, called "Inhabitants", takes place on a distant world when your sleeper colony ship crashes down on a marginally habitable planet. The players are the first people awakened, and they have to figure out how to survive. They can wake other people up, but they only have so much food production, so they have to be careful who they wake up.
They're given the dossiers of people still in cold sleep (chunked together into batches of dozen in a "room" to keep it from getting exhausting) and have to make decisions as to exploration, construction, training, missions... it's part RPG, part world-building game, part strategy game.
The large number of random characters allows the players to choose characters they want - with the skill set they want and the personality they want. Of course, dossiers aren't famous for accuracy...
Once awake, these characters are living, breathing characters instead of tokens.
(I could even do a "rotating character select", where any player can trade their current character up for a character still in cold sleep... that would be a challenge to their RP skills. I'm thinking of having two classes of player - stable and walk-on...)
Of course, the game world (in this case, a literal planet) is also highly complex and interesting - it's not simply a bunch of guys wandering around trying to survive.
Anyway, this same basic need is found in many games. Computer RPGs that want to fill a village, tabletops where you have to whip up a squad of soldiers and don't want another pack of faceless goons...
How can you do it?
Well, one way is to simply to roll up random characters. "He has, um, five skill points in kung-fu and three in cooking... and he's ambidextrous!"
The problem with this is that it's essentially pebbles. It's a mess. There's nothing to grab hold of, either for a would-be GM or a player reading a dossier.
So what you do instead is use (or build) "stereotypes". Then you specify the character's interesting points in terms of breaks in the stereotype.
For example, a guy with fighting and pickpocketing skill. Not incredibly interesting. But make him "Lieutenant Colonel Jackson, commander of the 58th Mechanized Infantry", and suddenly he's interesting. A high-ranking military official with pickpocket? That's meat - you can use that to bring up interesting plot elements featuring that character, or to catch the player's attention with a footnote in their dossier.
The trick is to choose your templates wisely. In both my game and my friend's game, everyone is going to be military. That's useful because the military features a fairly rigid tree structure of positions and ranks - it's pretty easy to plunk someone down and "walk" them along automatically. Breaks and glitches in their progression are very interesting because the framework is very transparent.
If you choose a less organized set of templates - for example, the general population - you'll have a harder time simply because there's more templates and they aren't usually clearly connected. Breaks in the progression are the norm, rather than the exception.
Either way, the whole point is that anyone who starts reading the character sheet or dossier goes, "48-year-old white guy, gunnery captain, okay, I have an idea of who that kind of person is. Wait, 'fashion sense' and music skill at 8? That's interesting... Now I have a really clear picture of who this person is."
It's a basic trick, but I thought I'd share it. :)