Nice work.
The problem with trying to automate the whole thing is generating the random numbers, which isn't an issue, but then automatically copying the result as a value and not as simply another function that will change with each new cell entry that's made.
Good use of the vlookup, it's effective for DMs, you just need to devote the time and capacity to building the tables, and then combine them with the random number. The latter can be generated in a column or row, depending on how you've oriented it, which you can then hide. I used the RANDBETWEEN function to generate the random number, copied it as a value into the next column, then deleted the function as it'd done it's job.
I used filters as I'm doing rather uncivilized hours and haven't the patience or energy to get to them at 10 at night (as opposed to when I get onto CotI - while I'm eating) but a combo of VLOOKUP and generating random numbers can do the job.
The other thing is that it depends on what sized area you're working on, how much time you have, and how much you want to craft it. If it's just a sub-sector then I reckon we should take our time and generate something that helps drive our scenarios and campaigns in the direction that we want to referee them.