The perfect name for a character is like a gift to your readers. It's a handle, it fits, it evokes the personality of the character and makes the story the stronger for it.
Sometimes that name is right there, staring you in the face, the right one at the right time. other times it can be damn difficult to put a name to a character. When that name comes easily and swift, congratulations! But, when it's difficult, almost darn near impossible even though that character is already a presence in your mind and on your page, then you have to do something, but what? Well, a simple 'placeholder' name that you can easily do a find and replace is my solution. You can call the character "Dark Villain" or "Evil Seductress" or "Friend 1". You could use nonsense names, but you might find that a detriment to creating your final name. That character will interact with you as will the name and you don't want to set yourself up for disassociating with your characters. Hopefully as you create your story the name will emerge or you will have taken pains to create the right name and you can replace it quickly.
So, if the name is not suggesting itself, not popping into your head while doing the laundry or evaluating the plums at the grocery store, how does one go about mining for names? Well, there's always the phone book. Don't laugh, it can, at times, work. Either provide the perfect name or kick start your creativity so that you come up with the just the right one.
But there are other avenues you may want to pursue in your quest to create the right names for your characters. Think about what sort of name you want to have. If the name Sky or Rose appeals to you think about why. Do you want it to be real, Sky is a glorious, expansive person, dependable and big as the horizon or do you want it to be ironic and Sky is about as dark as the bowels of the earth, shallow and pretty much a worthless waste of space? Play with names, think about what your goal is with that character.
You might also consider symbolic names. This can be a slippery area however. It's far too easy to slip into what have become 'cliche' names for a good guy inserting 'sun' in the name or using initials such as J.C. (for you know who). You can't be heavy-handed when creating a symbolic name. Be subtle, base it on your character's deeper traits, something a reader might not get right away, but it imparts that character's character plainly.
Or you could just create a straight forward name, on without hidden meanings that falls trippingly off the tongue. Harry Potter maybe, or Forrest Gump. Gandolf. John Carter of Mars.
Here's where phone books, baby books and naming books can come in handy. Or surf the web and find names and surnames by national origin. There are are plenty of sites that tell what a name means and there are lots of sites that simply generate names. The Forge fantasy name generator for example which offers several generators. Heck, heck on over to your local library and spend some time perusing books like encyclopedias on various subjects such as history, music, sports or TV. Try the geneology section for lots of names.
Oh and a few last tips. When writing something historical, make sure you get the name right for the era. Don't name a character Sky, as suggested above if it's totally inappropriate to the era which you're writing about. Take a moment to speak your names out loud. What if you decide on publication as an audio book or if it's digital and the text to voice in turned on? And don't forget to give your characters distinctive names apart from each other. Use different initials, different syllable length. Don't allow them to be to close together so the reader has a hard time distinguishing between Huey & Dewey.
Naming characters so you give them life, personality and the ability to capture the hearts and attention of your readers is a real challenge, but if you allow your mind to play and trust your ear and gut reactions you'll find it does get easier. Think of the great names you can identify and what their story content is. Then get out there and create your own.