This trick is really too simple to even mention, but when I bring it up at games I’m always surprised that people don’t know it, so I’ll record it for posterity.
Say you’re stumped coming up with a name for a character in your average fantasy / sci-fi / not-modern-day-Earth setting. Here’s what you do:
1) Take a normal name
2) Change or drop one letter
Robert becomes Rolert, Rubert, Obert, or Roberi
Frank becomes Brank, Urank or Frunk (half-orcs in the house, yo)
William becomes Illiam, Willia, Welliam, or Wixliam
And so on.
Try it. If you pick random letters you may get unattractive results (like Zrank… hmm, maybe that one isn’t so bad after all) but with a minimum of effort you can weed out losers and score good names. You can use this trick as a GM trying to brand random NPCs on the fly, or as a player struggling to find a good character name. If you’re the GM, don’t tell anyone this is what you’re doing — it’ll just distract everyone.
You’ll be surprised how quickly names look nothing like their original version. If a name does look too much like the original you probably want to ditch it so it doesn’t break the mood (Jonathan => Jomathan might be too close). If you wind up with a homophone ditch it and try again (Bill and Byll look different but sound the same, so no go).
Changing the first letter or a major vowel will usually have the most impact. Linguists can step in at this point, but I suspect you’ll get the biggest results by altering letters in the emphasized syllable of the name — just a theory. You don’t need to worry about that, just experiment and trust what sounds good.
If one letter is not enough, you can go completely crazy and change two letters. You are now in the completely unexplored frontier of rapid name generation. You have been warned.