Distinctness matters more than meaning. If your cast includes a James, a Jane, a Jason, and a Janet, the reader will lose track of who's talking by page twelve. Vary the first letters, the syllable counts, the sounds. A story with Marta, Owen, Celia, and Dietrich gives the reader four distinct shapes to hold onto. The eye catches difference faster than similarity.
Names carry time and place. A woman named Edith probably wasn't born in 2004. A man named Jayden probably wasn't born in 1932. This works for you. The right name anchors the reader in your setting without you having to explain anything. If you're writing historical fiction, spend twenty minutes with census records or baby name databases from the era. That small investment in accuracy compounds across the whole manuscript.
Every name has baggage. Scarlett already belongs to O'Hara. Hannibal belongs to Lecter. Some associations are too strong to override. You can use this to your advantage with subtler names, ones that evoke a feeling without being so famous they pull the reader out of your story. But test it: say the full name out loud. If a real person or character immediately comes to mind, pick something else.
Placeholder names are fine. Precious names are dangerous. If you've spent three hours on a name and can't start writing, the name is a stall tactic. Call the character David, start writing, and rename them later when you know who they actually are. Characters earn their names. You don't have to hand one out on page one and live with it forever.
A good character name fits the era and setting of your story, is distinct from other names in your cast, and carries the right associations for the reader. Avoid names that start with the same letter or sound too similar. Read the name out loud. If it feels wrong in your character's mouth, it's wrong on the page.
Sometimes, but subtlety matters more than cleverness. A villain named "Mal Evilus" insults the reader. A character named Gatsby, though, carries just the right suggestion of reinvention and false polish. If the meaning is invisible to 95% of readers, it's a nice layer. If it's the first thing they notice, it's a problem.
Common first names and surnames are fine. Millions of people share the name "James Parker." What you want to avoid is using the full name of a specific, identifiable real person in a way that could be seen as defamatory or misleading. When in doubt, change enough details that no reasonable reader would confuse your character with a real individual.
Generate a handful, not hundreds. Analysis paralysis kills more stories than bad names do. Pick a name that feels right, start writing, and change it later if the character outgrows it. Most published authors rename characters during revision. The name matters less than the person attached to it.
Internal consistency. Tolkien's Elvish names work because they follow their own phonetic rules. You don't need to build a language, but the names in your world should sound like they belong together. Pick a few linguistic roots and stick with them. Mix Nordic and Japanese syllables randomly and the reader will feel the seams even if they can't name the problem.