NPC names are a mixture, depending on which NPCs we're talking about.
The NPCs that you find in stations - your faction liaisons, your crew and crew candidates, etc - are generated by a combination of two lists, combined at random: first_name and last_name. Thus, you can have a crew-member named "Michael Gove" only if "Michael" is in the first_name database, and "Gove" is in the last_name database, and you get really, really lucky with hitting that specific combination, because those two databases are actually rather large. You're just as likely to get "Michael Bryant" or "Jennifer Gove".
NPC pilot's names are a different matter; their entire name is pulled from a single database. Thus, "Michael Gove" is in the list, and it's impossible to get "Michael Bryant" or "Jennifer Gove" unless those specific names too have been added to the list. Players who donated to a certain level earned the right to add a name of their choice to the NPC plots name database.
I say "single database", but I believe there are actually several databases with names "classified" at FD's discretion, based on the ship's archetype: "pirate", "trader", "smuggler", "bounty-hunter" and so forth. For example, Traders almost always have sensible, normal-sounding names like "Matthew Robinson". Names like "zzSlasherzz" or "Killer Killzemall" have ended up on the "pirate" subset.
Some of those player-submitted names are, theoretically, leaving FD open for copyright violation lawsuits as they've been filched from other sci-fi franchises. There are many names like "Luke Skywalker", "James T. Kirk", "Londo Mollari" and "Arthur Dent" in the NPC name database.