Now for the
real answer. For routes on international airways, waypoint names come from an ICAO computer that tries to ensure the name is pronounceable and is not repeated anywhere else. This was not always the case and some countries may still want to allocate their own waypoint names, but they still need to clear them with ICAO first. But probably only if the country in question is an ICAO contracting State!
Names for waypoints on domestic routes are allocated by the responsible authority of that country. The rationale for naming is then pretty much the way
Spoonbill has described it.
Within my part of the world, the "honour"
falls to me. I try to make the name relevant to some prominent feature in the general area, or at least a name that's relevant to the general vicinity. Sometimes I have to get inventive, not just with the name, but with it's official abbreviation, if the full name is longer than 5 letters.
I'm happy to let ICAO come up with names for all the waypoints on international routes that cross our FIR. Saves a lot of hassles with coordination and its their problem if their computer comes up with a naughty name!