Implementing a really complex PRNG in Brightscript is indeed a recipe for slow. There is an old classic though that's quite fast, not (nearly) as statistically strong as the modern variants, but decent for this particular task I think, since the quality constraints are rather weak.
In The Art of Computer Programming, Knuth describes a simple algorithm that starts with an array of high-quality random numbers generated by a slow algorithm or by true entropy. Then the fast/weak algorithm simply adds two numbers chosen at particular points in the array, modulus the native word size, in order to get each successive number. It's a FSR (feedback shift register) algorithm of a sort, combining words instead of bits, and using addition rather than XOR as the core combining operation.
In any case, the total operation count to create a new output number are pretty small: two array lookups, one addition, one array store, and tracking 3 pointers or indexes into the array (three increment-and-MOD operations).
It's also amenable to amortizing function call overhead, because you can run it in a tight loop for as many iterations as there are elements in the array, and then you have that many new pseudorandom numbers just sitting in the array waiting to be used.
Note that the array tap locations and array length must be chosen carefully -- Knuth provides a list of configurations that don't quickly fall apart.
Note of course that you would NEVER use this algorithm where randomness quality is really important. But when the goal is simply to be fast and not really horrible quality-wise, my recollection is it works decently well.