Finding the right name for characters involves a number of variables.
*The period the story is set in. Names must be authentic for the period. A number of websites are available for different historical periods as well as recent years. Do your research, and don't have a Medieval heroine named Tiffany.
Here are a few sites to look at
First names: http://www.behindthename.com/
Popular first names in recent years: http://www.ssa.gov/OACT/babynames/index.html
*The location of the story and ethnic background of your characters.
Popular first name by state: http://www.ssa.gov/OACT/babynames/index.html
*The current impression the name gives. Years ago, for example, men were named Leslie, but it has become a woman's name. Naming your hero Leslie might be authentic for the period, but it will give your reader the wrong impression.
*How hard the name is to type. I avoid some names because I can't type them. If you must use a name that's hard to type, pick a simple nonsense string of letters then do a universal search and replace. Be absolutely sure the letters are nonsense so you don't insert the name in the middle of words that have that string within them.
THE MAIN CHARACTERS' NAMES
The right name for your hero or heroine is one of your most important decisions.
For major characters, I don't just pick a name I like. Instead, I wait until I see a name, and a frission goes through me to tell me I've hit the name for my character. Most of my character names have been gifts of that sort. Sometimes, the character will tell me his name at a certain point in the creation process.
The name, in other words, is as much a part of making the character real for the writer as it is for the reader.
SECONDARY CHARACTERS' NAMES
Try to avoid a secondary character's name that is similar to your major characters' names. That includes names that begin with the same letter or look similar (Al, Sal, and Sally).
Before I start writing and after I have my main characters' names, I make a list of other names I can use in the book which fit the period, etc., as well as being different from the major characters' names. This allows me to pick a name for that waitress who has a few scenes without having to stop my writing while I think up a name.
USING SIMILAR NAMES
I have used similar names deliberately in my writing. In TIME AFTER TIME, my hero remembers all his past lives, and he's trying to convince the heroine they have been reincarnated lovers in each of those lives. He restages and retells their past lives and their loves so I needed different names for them in each time period.
I decided that I'd use the same first letter or letters of their current names for each past name so that the reader would recognize instantly when I mentioned a name even if they couldn't recall the period that name was from. Each name would have to fit the historical period as well as the personality of the character.
Justin was earthy Jed in the Old West, and Alexa was Annie. In the 1940s, Justin was sophisticated Jared and Alexa was Alicia. Their other names also reflected character and period.
THE GOOGLE TEST
For main characters, particularly villains, it's a good idea to put the name into a search engine to see if someone out there shares the name. Put the first and last name into quotation marks so you will only receive results with both those words close together. If you find someone with that name, you may want to consider a different name.
This is also a good idea for book titles.
THE NAME GAME
As you develop characters and names, you'll discover a new fascination with names and their power, and you'll probably find yourself scanning obituaries and phone books for that unusual name to add to your name list. Enjoy this. It's part of the fun of creating characters.