With everything that has ever been written about writing this is a truth: there are no rules and exceptions are everywhere. All I'm giving are guidelines of my own, a vision on the way I work my stories and I'm not even always using this method. You need to have a bit of a feeling of your own about what's appropriate and what not.
Where to get names?
Names can be found anywhere. You can use names around you, check birth lists, delve into the depths of history or scour geographical maps. I recommend the following websites for person names:
Another important thing when looking for names is to think broad. The history you were taught in school is not the only history. What was the rest of the world doing while the Romans conquered the Mediterranean? What was going on elsewhere during the 2 world wars? You can also dig into obscure folklore, legends and traditions. It's not like the entire world knows where the name of the city Antwerp comes from. (disregarding those people who believe that Belgium is the capital city of a country named Europe...)
How to choose names?
|George, dragon slayer or alien overlord?|
Don't call the evil alien overlord "George", unless you're designing something humoristic. Keep your landmarks within the cultural context you meant them for; don't screw with unrealistic technology too much.
You can try to choose names that tell you something about the character.
George, for example, means farmer or earth worker. He is associated with earth, but also with the Saint that slew a dragon and several British monarchs. Therefore it is safe to use the name George for someone that is quite literally a farmer, a dragon-associated person, a saint, a king, but also with an earth-element magician.
Don't be afraid to go cross-language.
The world is multicultural and multilingual so planets of hats aren't exactly the right thing to have in a realistic setting. (the amount of Englands in fantasy is uncountable)
Give things a full name and give everything a name.
No one has just a first name or just a last name. Give persons both. If a name is hard to pronounce, add a nickname too, just like people would in real life. Endearing names for loved ones should be taken into account as well. Don't forget locations either in this one, everyone will probably know where the big apple is.
Other things to consider
Have fun with it. You're still the designer. It's ok to make hidden jokes with your names. Have people complain about their name. Make puns, anagrams, word jokes, you name it. George might be a dragon slayer, but maybe he doesn't like his name? Or he doesn't want to be a dragon slayer at all?
I'll try to give a specific example of naming when I create a character from scratch in one of my Dev Diary topics for the people who want a more practical example and to end my article about names, a fitting quote from Ian McEwan, British novelist and screenwriter.
It is not the first duty of the novelist to provide blueprints for insurrection, or uplifting tales of successful resistance for the benefit of the opposition. The naming of what is there is what is important.
People who think they know where the name of Antwerp comes from, feel free to place a comment. I know it's pretty well known in Belgium itself, yet I found it a fitting challenge for the rest of the world :-)