Years ago, I used a program where you could create and roll on random tables. The program supported a rudimentary scripting language that allowed for chained tables (like D&D treasure generation) and human readable outputs: you typed something like "{{WEAPON_NAME}} is {{WEAPON_TYPE}} with the following powers: {{WEAPON_POWERS}}" and ended with with "Orc Cleaver is a short sword with the following powers: +1 to hit, flaming".