I would get the puppy and let it name itself. It just takes a bit of time, but the right name will appear that matches his personality.

You also need to think of what kind of personality you most desire in him because you will subconsciously mold him into that where possible. A name should represent both who the dog is, and what you want him to be.

For example, no one expects the same behavior out of a dog named "President" compared to one named "Joker." Your training will mold him into one or the other. You will subconsciously reward/punish him into his name. So it is best if his name matches his inborn strengths that you enjoy.

My current dog is named "Sprite." She isn't named "Steady." If she were, I would not enjoy her antics as much. As it is, her name fits her personality, it's a good name for calling her, and I'm always happy when she's acting out her inborn personality.