Names are totally random, not checked against any dictionary, that's what I thought was fun. It would be hard to appreciate the goodness of a name, at least programmatically, how would you do that ?
Nevertheless, it's a pretty cool idea! :)
I'd say make a dictionary of bad words and their syllble sounds. Then disallow close Levienstein based words....
Regardless, if you take the short keywords and blacklist them by approximation with curse words from several languages I think it would be really hard to get something at all.