Non-Player Characters are an important tool for me as a GM, and since I write the kind of games I want to run, I always have a section on creating NPCs. IMO, creating NPCs should be nothing like creating PCs. For major NPCs, I need to know their five Ws - Who, What, When, Where, and Why.
Who - Their personalities and backgrounds, their quirks, faults, and their strengths.
What - Their resources, people, and plans.
When - Their timelines - when they make their moves.
Where - Their surroundings, their place in the community.
Why - Their motivations, their wants, and their needs.
This ties directly into how I run games as a situational GM. My NPCs are vectors, they have direction and velocity, and I need to generate that sort of thing. My NPCs have goals, and they have resources to achieve those goals.
I use random results to inspire me, to make me come up with unusual problems and solutions, though I'm just as likely to pick from those tables once I have a strong idea for a character, so I put these random tables into my games for others to use if they want. I don't know if others use those parts of the NPC generation sections, but I do. These guys are seldom good with weapons - they are mostly people in positions of power, who hire guns for the dirty work.
So I also set up a range of hired guns - people who are there to shoot and be shot at. These guys just need a few quick skills and weapons to customize them. They're part of the resources of the major PCs, and don't need the kind of depth those guys get. You can pick these guys out of the book and throw them at the PCs with little thought and no planning. I love those guys. They make my life bearable!