You want a name that is:
1. Relatable
2. Easy to say
3. Appropriate for your character
If writing anything in a contemporary setting, choose monikers for your characters that are appropriate for their era. You can look anywhere online to find what the most popular names were in different decades. For example, in today's day and age, a twelve-year-old boy is likely to be a Jacob, Ethan, or Tyler, and a girl Emily, Ashley, or Kayla. A lady in her thirties would probably be a Jennifer, or an Angela, and a guy, Matthew or David. Calculate your characters' age and find the list of popular names from their birth year. You don't have to pick from the top ten, but choose something that works with their generation.
This goes for novels with historical settings as well. Names were often selected from the top ten, especially for the gentlemen, in those days. In my WW2 WIP, you will find names like Ruby, Sam, Gwen, and Raymond. If I were to swap those names with choices like Brielle and Peyton, it wouldn't fit.
Also to be considered: surnames, middle names, nicknames, if their name is derived from a family member's, etc. If you have a female character who marries, will her first name work with his surname? Is your story's setting one where women change their surnames at all?
Nicknames can create a sense of sides of characters that the reader has yet to experience. For example, if you're writing a scene where a polished businessman runs into an old friend, and the old friend calls him something silly from his college days, this will put a new awkward twist on the businessman's character development for the reader!
And, as in Ender's Game or Little Women, the main character may call themselves by their nickname, while other characters may not. In Inkheart, character Mortimer Folchart refers to himself by his daughter's pet name for him, Mo, but when the book switches POV to an older, matriarchal character's perspective, she refers to him as Mortimer. In Scorpio Races, the heroine refers to herself by her local nickname, Puck, but hero Sean calls her Kate until he gets to know her better.
If you are a C.S. Lewis type, you can choose names with special meaning or significance. Now I don't mean naming a botanist, Rose, or a prince, Charming, but it's always something that can be a little twist in the story, or just fun trivia for your readers.
Sometimes, just the sound of the name can send across certain messages. Author Maggie Stiefvatar wrote about this once, saying she chose one character's name because it sounded hard, and it looked right on the page for who he was.
But, dear fellow fantasy writers, for heaven's and your reader's sakes, create names that are easy to say, and resist the urge to fill them in with apostrophes and hyphens! You might be banking on a nice pronunciation guide in the back of your envisioned bestselling hardcover, but the truth is that most readers find it irritating to flip back and decipher what exactly the text in front of their eyes is trying to say. I'm pretty sure I've listened to more than one fandom argument over the pronunciation of names in Eragon.
Another tip is to create names with a certain beat to them. Four or five syllables to a full name is a good rule of thumb. To find out if your character's moniker has such a poetic beat to it, try chanting it like a sports fan (or a Yankee Stadium bleacher creature). It works.
So, to sum this all up, here is your official character-naming checklist:
1. Relatively easy to read aloud
2. Fitting for time, place, and person (ethnicity and family)
3. Has at least one nickname, doesn't have to be related to given name
4. Has to be something that you like!
Number four is definitely important! Why? Because, and maybe it's just me, but to change a character's name is to change a part of the character herself! In the past, I've had to change (for different reasons) a David to a Cody, an Anna to a Rakhila, a Cassie to a Courtney, and a Patrick to a Bran. And each time, it drastically changed the character's image for me. That's why, when starting your novel, I recommend that you know exactly what you want your major characters' names to be. Yes, they can be changed, but will just the change of a few letters on your document also change your and your readers' perceptive of who that fictional person is?
The best places to find names are baby-naming websites. Some even have tips for writers. How do you name your characters?