Character names, like story ideas, come from all over. Some are names from people I know (a first name here, a last name there) while others are a blend of words or sounds that I like. I most often write humour, so I'll often try and slip something funny in there, too.
The main characters in Attack of the Intergalactic Soul Hunters are Conrad Viscous and Knowlton Cabbage. In their case, I just liked the way the words sounded together. I'd had a friend named Conrad when I was growing up, and Viscous simply came to me as the ideal last name for him. He isn't a particularly sticky or slimy character; I just liked the word. Knowlton was a name I'd heard around and I just liked, and Cabbage went well with it the way Viscous went with Conrad. Sometimes you can't explain name choices like that; they just sound right in your mind's ear.
Other character names from that book had different origins. Pakfrida, the alien spirit who befriends Conrad, was a combination of my grandparents' names. My grandmother on my mom's side was named Frida, and my grandfather on my dad's side liked to be called Pac. Pakfrida was a grandfatherly sort of character, so I put Pac with Frida to get a unique name. Javix, the bounty hunter who helps Conrad, came from the cleaning fluid Javex. I just liked the sound of it. Cyscope, the main villain, had a name similar to that of Cyclonus, a Decepticon warrior from Transformers. Both characters are intelligent and ruthless, and I like to honour Transformers whenever I can.
Like I said, names can come from anywhere. One thing I try to do with them, however, is make them unique and memorable. I avoid common names as much as I can for main characters - it's more fun that way. Bill Jones isn't that unique or memorable. Conrad Viscous is. At least I think so.