>new_character.real_name = pick(clown_names)	//I hate this being here of all places but unfortunately dna is based on real_name!

Sounds like it has to be done here. I mean you could remove references to "clown" and "mime" by making the name choosing and name list a part of the job datum. But instead of risking doing it wrong and breaking something (clown names are in a .txt making it more of a hassle) I'd rather just go with this. It doesn't make maintainability harder than it is right now either since it just gets skipped if you remove the mime or clown job.