For generic names of relatively unimportant characters, I go through a list of people who bought my software in the early 2K's. That's thousands of actual names of a variety of ethnicities. I scan until I see a first name that appeals to me. Then I go looking for a surname that seems to fit. (I never use anyone's *real* name on purpose.)
For important characters, I brood on it for a while. I'll assign a working name and use that until their real name comes to me.
For names that need to fit the setting, like colonial North America, I go hunting on Google for era-appropriate names to pick from.
Sometimes, because I'm not German, I take a word like "weaver" and translate it to German ("Weber") and call that the surname. I'm not saying it's a *good* idea, just one I've used.
-David