Hi Joshua,
Having had a squint at the code as far as I can see, not being a JavaScript programmer, there are two problems:-
1) It looks like it is not using the dice for a definition list which maybe by design.
Though personally I'd like to be able to specifiy a dice expression for a definition list since there are numerous examples of tables in RPG's that use say a difficulty modifier to restrict the range of results from a table.
2) While the code checks for a high value it doesn't check for the lowest value in the definition list.
The code does r = Math.ceil(Math.random() * high); instead of something like r = Math.ceil(Math.ramdom() * ( high - low )) + low; where low is the lowest value found in the definition list.
As I said I'm not that familar with JavaScript so this maybe all be a red herrings. :)
have fun
alc