Another idea... but do as you like, it's just an idea: the F18A could offer a fast RND function, one write address to set the max value and one read address to get a random number between 0 and max. If your max doesn't change, just use the read value.
Yup, I thought about that, and I actually have that feature half implemented. Not sure if it will get finished though.
What about just some free-running LFSRs? The TMS9900 has a MPY instruction, so you can take the LFSR output and multiply it by the size of the range and take the upper bits of the result. That part doesn't need to be in F18A hardware. For additional entropy, you could XOR in whatever's currently on the data bus each cycle.
The update rule for the random number generator could then be as simple as:
rng = (rng >> 1) ^ data_bus ^ (rng & 1 ? 0x8048 : 0);
(0x8048 is one polynomial I happen to have memorized. There's dozens out there, and all work pretty well.) With that running at the F18A's 100MHz clock rate, it'll be way more random than anything you'd hope to generate on the TMS9900.