1). are memorable to the players
Creating memorable NPCs will involve a number of steps, but it should be noted that there are multiple ways to do this while sating the other four requirements of this question.
First, you need to have a rapport with your players about their characters during character creation and get to know their needs, what they value about their character, what they look forward to in the campaign, some basic family history, what their short and long term goals may be for the character, and anything else that would help you understand the player's personal attachment to their character. This is something that should continue to be assessed throughout play. After initial creation, a player may develop a fondness later in the game for exploring cartography with their character. There may be new pursuits that develop for a player and their character, there may be lifelong goals slowly realized, and the player may have their character abandon yesterday's passions if it didn't pan out like they wanted or something else more interesting to pursue caught their attention. Memorable NPCs are going to need to somehow speak to these pursuits as well as other personal elements of the player and their PC. This might be in the form of an NPC that assists or hinders those pursuits and interests. It may be a personality type that compliments a player and their character, or it may be an NPC that starkly contrasts them. The crude barbarian may find a memorable experience with another crude barbarian NPC who shares engaging war stories, or the crude barbarian may find a memorable experience learning how to deal with a helpful and charming but poised and easily-offended aristocrat. Understanding what makes a player and their character tick should be the first step in creating memorable NPCs.
Next, decide on the manner of NPC generation. This is discussed in later sections regarding ease of creation and ease of use. Once you identify the approach you will be using to generate your NPCs, you can start to devise a way to alter or adjust generated characters as well as how to introduce them and play them. You may find that a randomly generated NPC doesn't make so much sense, or won't be as engaging to the party under the circumstances. Adjust accordingly if you need to, but leave room for diversity. Focus on letting some of each NPC's own interests and passions shine through. If a randomly-generated NPC has a high stat in cooking, improvise a short story about the NPC's childhood and why cooking is so important to them and throw it in tactfully with the conversation that the players have with them. A great time for this can be a long ride from one town to another while escorting an NPC, for example. Instead of saying the ride is uninterrupted for five hours before a mob jumps out of the woods, roleplay some of the downtime with the NPC making light talk and offering some personal accounts of their own life. If the rogue seems to take a liking to the shady but mostly well-intending merchant the party is escorting, have the merchant reveal a small personal secret to the rogue while making loud near-insults to the holier-than-salespeople paladin that seems to want nothing more than the ride to be over. Don't be afraid to cause a little bit of mixed feelings from the party about an NPC if appropriate, sometimes that will make for a memorable experience in itself.
Lastly, let the players explore the NPCs of their own volition within reason. Don't let the players walk all over you and ruin your crafty plans even if some of those plans are automatically and randomly generated. But take note of which NPCs the players seem to show interest in. If you've devised a wonderfully deep and wildly interesting NPC but the players won't give them the time of day while flocking over to the basic bartender you drew up in a matter of a couple minutes, don't stress it. It can be frustrating when this happens, but it happens. If this happens, try recycling the best parts of the NPC you wanted the players to explore and recreate such in a different way in a future NPC. Also, try switching it up by altering the bartender in this example to reflect more of the important dynamics of the NPC you spent more time on but the players abandoned. Or, if you can swallow it, retire the NPC concept for now and focus on filling out the character of the NPC.
Most of the memorable aspects of a character will come through improvised roleplay. You cannot expect what the players will do to a science, so you cannot prepare enough for how you will have your NPCs react. After generating NPCs, fill them out in ways that make sense for engaging relationships with the players at your table but let them have a hand in shaping those characters. Get the NPCs to a point where you yourself feel an emotional attachment to them and then let the PCs drive for a while. They'll help you fill out the next parts to expand in those NPCs just by how they focus on interacting with them, but the players should not be so aware that they are affecting NPC development.
To summarize, creating a memorable NPC is part preparation work by getting to know the players and PCs, part generation and record-keeping, but mostly something that is an ongoing process throughout the game as the NPC's build more depth as needed and appropriate.
2). have some depth
There are different types of NPCs, some of which are just nameless faces in the crowd that the players will never specifically opt to size up or speak to, many of which you never even need to roll stats for. The players just know there is a crowd in the town center about 500 townfolk deep. Some may be quick encounters that are brief, relatively normal and banal, reveal little to nothing about the NPC, and offer nothing in the realm of memorable personality traits. On the other hand, some NPCs may become lifelong friends of the PCs or leave profound impressions on both player and character. This is reflective of real life and makes for a more believable game. It also helps players focus on more important matters at hand. When the lich king attacks and reinforcements arrive from a neighboring kingdom, the PCs don't need to know the lowest ranking soldier's life history or even anything beyond basic demeanor if even that. They just need new swords in the fray helping to win the battle and prevent everyone from becoming zombies at the lich's hands. On the other hand, that same low-ranking soldier may have a brief personal story to tell about why he isn't as nervous as his low-ranking peers, perhaps his resolve comes from his parents having been slain by the lich years ago. It should be appropriate and influenced by what the players choose to focus on. Include a few items of consideration in the initial description of what the battlefield looks like as reinforcements arrive. Describe the scenery, how the lich king seems to react, how much time is left before a new wave of skeletons arrive at the front lines to attack the party, the fact that one of the newbie soldiers that came in looks particularly calm and focused compared to the rest of his compliment that are practically shaking in their boots, etc. From there, the players have enough to know there are multiple directions to explore. Focus on preparing for the next wave and nothing else, mostly come up with a plan for the next wave while chatting up the calm soldier, or something entirely different. Let them choose how to explore each NPC, and it will be more memorable for them. This also lets you fill in gaps over time based on what the players do. If you can deliver a confidence that each NPC is fully mapped out even if such is not true, you can feign this as the players explore by improvising strategically. If the players detect you haven't prepared well, they may avoid exploring NPCs and will miss out even if you have already filled out the NPCs in deep and meaningful ways.
Regardless, if you try to fill out the NPCs too much before there is any interaction, you may be missing out on giving your players the experience of unconsciously helping to shape the world around them as they explore it. Even though foreign weapons may be typically hard to come by, if a player has an interest in them they will find someone that has a same knowledge and interest if they look hard enough. It might not statistically make sense for every small town to have a shuriken expert, and sometimes a search may not turn one up, but I will be sure to include meaningful NPCs from time to time that have some exclusive knowledge or item related to exotic weapons if there is a player whose PC is highly interested in them. Perhaps a friendly exotic weapons expert in a town that will always be just a little out of the way during major quests but pays off for the whole party if they agree to let the ninja visit his mentor from time to time.
Again, not every NPC needs to be quite so critical. Sometimes, the barmaid is only interested in quickly taking your order and slapping your face if you try too much rapport. Not every random person you meet on the street will bust right out in their life story. Some people will refuse to talk to you. This behavior can even make for a meaningful NPC. Offer an enticing description of an NPC that seems to be just what the party needs but have the NPC react in a short and rude manner, cutting the party off and leaving. Perhaps due to the fact that a half-orc is in the party. Don't offer a way to engage the NPC, simply resolve that the NPC will never give the party the time of day. Or, if the players seem to have the idea there is a way around it, get creative and let them. While they are working on a solution, you can be filling in the NPC to a deeper extent. If they decide to take time to drop the half-orc off at the bar so they can go talk to the biased fisherman, take time to create a little back story about orcs and half-orcs that caused the fisherman to distrust them. Then, don't make it easy even without the half-orc PC around. In an example like this, create a trade-off. Highly interesting and useful NPC that hates one of the PCs out of bias + needing to somehow have both in the same place and not fighting each other at the same time = memorable experience, possibly via proving to the NPC that their bias is wrong through valiant and meaningful dedication of moral character and resolve on the discriminated character's part.
To recap here, the bottom line should involve letting the players explore and helping to shape the story, including some of the of NPCs. If a PC shows an interest in gambling, don't throw a constant stream of nothing but lawful good NPCs at them with pamphlets about how gambling is wrong. A little bit of DM confidence and a little bit of common sense will go a long way here, especially if you are paying attention to what the players want out of the game. Memorable is relative and subjective and a priority should be learning a firm grasp of what makes each player relatively subjective in their own way as related to their characters.
This all might be easier said than done, however.
3). are easy to use in my games
There may be a number of obstacles that threaten to make NPC creation and implementation more difficult than it needs to be. Players may decide to try talking to every single person in large town. Players may choose such erratic or unexpected decisions that you are caught off guard and your plans are rendered asunder with nothing left but the quick undeveloped NPCs thrown in for atmosphere. They weren't supposed to avoid the bartender but instead they engaged the drunk guy who just got thrown out for fighting. That guy was just supposed to help show it's kind of a rough and tumble bar but the bartender is stout and won't take tomfoolery in his establishment. Why are they trying to talk to the drunk guy that's stumbling around outside trying to find a horse that isn't there when a big clue and memorable NPC is waiting inside tending the bar? He has no clues, no personal history yet, nothing but a basic physical description. Multiple solutions exist in this example. Invent a reason for the bartender to come outside. Maybe in addition to fighting, the the bartender just learned that the drunkard has also stolen money from the bar. Or maybe the drunk is the bartender's brother (an improv DM decision) and the bartender is coming outside to check on him. Most of the time, the best solution will be to roll with the punches and fill out what was originally intended to be an undeveloped background character with no stats.
Another obstacle for easy and memorable character generation and record-keeping can be sheer volume. If you generate too many characters, it gets cumbersome to try and implement each one.
Again, not every NPC needs to be complete. There is no way to determine which NPCs the characters will gravitate towards, so the best you can do is try and influence this with your descriptions but also prepare for the unexpected. Be prepared to start filling out an undeveloped background NPC on a whim and without looking like you are caught off guard. Take time to pause before making the NPC speak, this can express a memorable and important interaction to the players even if you are just taking a short pause or quick question from the NPC to a PC to take time and better develop the character. When you are talking, the players should be engaged. When the players are talking, they should be engaged then, too, but more importantly, you should be actively listening while secretly filling out any required spontaneous character development and plot development in your head.
Ease of implementation will depend on your own needs as much as the players' needs, if not mostly for your needs. The players don't need to be privy to the manner of NPC generation, and they certainly don't need to see whether you have basic notes for multiple NPCs scrawled on a piece of paper or a stack of NPCs neatly organized by town, location, class, interests, and whether or not they serve alcohol.
One solution involves a laptop or smart phone. There are a number of digital solutions for character generation such as provided by Wizards of the Coast for AD&D. There are free and open source software solutions, as well. One easy solution could be printing out each main NPC and color-coding each one based on a color code of your own devising. Maybe it will be helpful to color code all the NPCs that are secretly evil and conspiring together. Or maybe you will want to use color code to quickly identify the NPC sailors and crew on board the players' ship that don't know how to swim well. A good portion of this experience is going to be about you exploring what is best for you, and may involve inventing new solutions just for your needs and your players' needs.
Ultimately, you don't want to spend an eternity doing all this, however.
4). don't take me a long time to create
The quickest solutions to get you going are going to be found in digital solutions. As stated before, WotC offers character generators for NPCs. There are also GURPS generators that can be found online that will emulate what you need. Each situation may have slightly different needs, however. If your players are locked in a dungeon for a few sessions with nothing but mindless monsters and a small handful of protagonist and antagonist NPCs, you can dedicate a little more time beforehand if need be. If the party is running into a new and strange land with exotic foreigners and merchant shops as far as the eye can see, you might need a more readily available and quick solution. The main point here should be to do enough prep work to just get you going. NPCs that the characters run into and explore a little but ultimately abandon don't need so much panning out. I cannot stress enough that most of the creation should actually occur over time in-game, and there's no shortcut for that. All you need are at least the bare essentials to start with, more as desired. A physical description, a basic idea of their demeanor and the first impression they will be giving, maybe a little history and personal aspirations/fears, but mostly just the basic stats for quick access when needed. When you automatically generate this, adjust a little if need be when appropriate but mostly run with the randomized stats. You won't have to pause the game to fill more of the character out to see how good they might be at throwing horseshoes. The players shouldn't have explored that, they were supposed to ask the informant about the missing heirloom with a huge reward as a bounty, but lo and behold they decided to get the guy drunk and challenge him to a game of horseshoes in the middle of the night. What to do? Play it by ear, or look down and access the automatically pre-generated stats. Maybe fudge the stats just enough to make the NPC deceptively remarkable at horseshoes even though he appears drunk and clumsy, just enough to get the players' and PCs' respect and give a chance to get them back on track. "Another ringer!" "Make that two more ringers, by my vision! Oh, do I need to sit down, what an ale. I can't thank you enough for your fine drink and games. Listen, about that heirloom.."
To restate this, don't focus too much on creating the character before your players interact (or refuse to interact) with the NPC. This will save a lot of time when the players make those unexpected decisions or don't seem to be able to take your hints very well and go after the wrong NPCs. This will also train you to do most of the memorable character development in-game as time goes on, influenced in part by the players' interests and choices for their PCs.
None of this helps if it is all too difficult to keep track of.
5). are fairly easy to record/remember
Make notes of special characters that are integral and unavoidable. These should not be difficult to remember. Also, make notes of NPCs that the players decided to interact with. After the session, do a little follow-up by yourself for DM purposes. Decide which of these NPCs will just disappear and never be seen again (PCs didn't catch a name yet, don't know where the NPC lives, etc) and which have a decent chance of being introduced again (depending on if the players seek them out or go to areas the NPC is likely to be around). Also, decide if any of these new NPCs should be promoted to special NPCs that are integral and unavoidable.
After you do this, you can start filling out the NPC character sheets better to help you remember and keep track of all these memorable characters running around. Maybe the cleric with a side interest in cooking has found a friendly master chef who the cleric trains and cooks with during down time in the party's hometown. If you've been taking brief notes as each NPC is introduced, how the players respond, what the PCs do, what you invent on the spot for the NPC character development, etc.. you will be reminded from your notes that the master chef NPC is an expert in exotic cooking. Fill out his stats a little better. Rework elements of the stats that weren't relevant yet. If the master chef has five ranks in horseback riding because that's what was generated, but horseback riding never came up.. consider respending those in something related to cooking now. Or, keep it how it is and give the character some depth. He's a master chef just like the cleric is a high level cleric, only HIS side interest is horseback riding. Perhaps have the NPC invite the cleric PC on a short but scenic ride into the woods for a rare cooking herb and reveal how horseback riding is a passion of the chef's and how it reminds the master chef of taking horseback riding lessons with his first love. OK, maybe not. The cleric might get the wrong idea, and so might the player. But you get the idea.
There's many different ways to skin a werecat. Your players need to have fun and part of this will certainly be due to memorable NPCs. Just remember that not every NPC needs depth. Also keep in mind that while finding quick solutions will help you get the game going with less difficulty...
- Good DM'ing always boils down to effort.
- Don't think of NPCs as characters that need to be fully developed from the start. Offer a diverse (even if randomly generated) range of NPCs that make sense and focus on which NPC the players focuses on. Give the NPCs room to grow as well as change. A general idea along with basic pre-generated stats is great, but don't commit to anything very detailed with every NPC before the PCs interact with them.
Best of luck. Hope this helped.