Here; it's just a Python script.
#!/usr/bin/python
import random
adjectives = ["mega","tuff","'ard","deff","snazz","flash","'arda","'ardest","war","shokk","gut","warp","proppa"]
name_components = ["kopta","deth","blasta","shokka","bomm","bomma","fighta","boy","rumbla","shoota","choppa","klaw","fist","brikk","krumpa","bitz","grot","git","nob","tred","trukk","trak","WAAAGH","gubbinz","killa","wrencha","sky","storm","gutz","head","thumpa","stikk","wagon","rok","flag","bludd","gitz","stompa"]
for x in range(20):
full_output_name=""
more_name = True
while(more_name):
output_name=""
if(random.random()>(float(len(name_components))/float((len(name_components)+len(adjectives))))):
output_name = output_name+adjectives[random.randint(1,len(adjectives)-1)]
else:
output_name = output_name+name_components[random.randint(1,len(name_components)-1)]
output_name=output_name.capitalize()
if(random.random()<0.25):
output_name=output_name+"-"
second_part = name_components[random.randint(1,len(name_components)-1)]
cap_second_part=second_part.capitalize()
output_name = output_name+cap_second_part
else:
output_name = output_name+name_components[random.randint(1,len(name_components)-1)]
if(len(full_output_name) > 0):
full_output_name = full_output_name+" "
full_output_name = full_output_name+output_name
if(random.random()>0.25):
more_name = False
full_output_name = full_output_name.replace("waaagh","WAAAGH")
full_output_name = full_output_name.replace("Waaagh","WAAAGH")
print full_output_name