When I popped about the blogsophere this morning, I noticed naming characters seems to be the subject preying on many writers' minds. So, ever searching for a post, I've decided to throw my two cents into the ring.
I use baby-naming sites. I look up the lists of popular names for the year (or close enough) to the year the character would have been born. Nine times out of ten, the name pops out at me. I've investigated a few name-generating sites, but I've never used them to name a character. I suspect this is because these names tend to be modern-day and that's not when I write.
I name main characters first, supporting characters second, pop-in characters I (honestly) usually name as I'm writing.
I try to avoid names that sound too much alike. I'm not going to have a Diane and a Diana. Neither am I going to have a Mary and a Gary (unless they're twins - but I doubt even then).
I aim for every main character's name to start with a different letter, as I know it's easier for readers to keep track of the little beasties. I don't always succeed. In my current WiP, I've got two names starting with 'R'. I've decided it's fine since these two characters team up and I like the alliteration. Having readers think of these two characters together is not a bad thing.
I try to avoid odd names - names that are hard to pronounce or have eccentric spelling. I write mysteries, so I don't need to worry about 'alien names' for the inhabitants of a distant world. Also, since my plots take place in the past, some names might sound old-fashioned. They weren't old-fashioned then. Today's Tiffany is yesterday's Thelma.
I won't use names with personal connections, simply because these names come with luggage. I don't need characters showing up on the boarding platform of me brainstorming a plot with luggage already in hand. I'll load them down soon enough.
I pick my names early - long before I know the character down to the ground. If I've chosen badly, I find out fairly quickly. If I'm having trouble finding the character's voice, it's usually because I've given the poor creature the wrong name.
I love naming characters. It's the one of the first tentative steps of any new plot - baby steps, if you will. No wonder I use the baby-naming lists!