I find it to be more fun/useful/memorable to grab the word lists from WordNet, which separate them by function (adjective, noun, verb, etc.) and slap an adjective and noun together.
Just played with that. It's brilliant. I may post an update with credit to you if you don't mind…
Oh yeah, sure thing. I use a similar script for a sort of inside joke in a group I help organize. We use the abbreviation PM a lot, of course meaning Project Manager, but my brain keeps latching on to Prime Minister. We've since laid down some unwritten rules that you can no longer say "PM" nor "Project Manger" nor "Prime Minister" but only "{P-adjective} {M-noun}." Because we rotate PM duty, we'll end up with a Pedantic Monk, Photosynthetic Migrant, Participating Magus, and whatnot. No public source code at the moment, but the script lives here: http://netninja.com/fun/pm/