Thanks, I remember originally checking on the concept but saw JS and cringed. I'll try to spend some time and see what you have come up with.
ADDED:
I've been reading on Mersenne Twister and would like to understand why this was chosen. I see some of the drawbacks are actually boons for our use case but could you give us a point by point rundown of how these attributes would effect our security. I've linked a pertinent post and hope you can point by point state whether the pro's and cons listed would be the same or should be moved to a different column for our use case.
https://cs.stackexchange.com/questions/50059/why-is-the-mersenne-twister-regarded-as-good+100
MT was regarded as good for some years, until it was found out to be pretty bad with the more advanced TestU01 BigCrush tests and better PRNGs.
The table at pcg-random.org e.g. gives a good overview of features of some of the most used PRNGs, where the only "good" feature of the Mersenne Twister is the huge period, $2^{219937}$ and the possibility to use a seed (Reproducible Results), it passes the simple and fast TestU01 SmallCrush tests, but it fails some of the newer statistical quality tests, esp. TestU01's LinearComp Test and the TestU01's Crush and BigCrush Batteries.
This page lists the Mersenne-Twister features in detail:
Positive Qualities
Produces 32-bit or 64-bit numbers (thus usable as source of random bits)
Passes most statistical tests
Neutral Qualities
Inordinately huge period of $2^{219937} - 1$
623-dimensionally equidistributed
Period can be partitioned to emulate multiple streams
Negative Qualities
Fails some statistical tests, with as few as 45,000 numbers.
Predictable — after 624 outputs, we can completely predict its output.
Generator state occupies 2504 bytes of RAM — in contrast, an extremely usable generator with a huger-than-anyone-can-ever-use period can fit in 8 bytes of RAM.
Not particularly fast.
Not particularly space efficient. The generator uses 20000 bits to store its internal state (20032 bits on 64-bit machines), but has a period of only $2^{219937}$, a factor of 263 (or 295) fewer than an ideal generator of the same size.
Uneven in its output; the generator can get into “bad states” that are slow to recover from.
Seedings that only differ slightly take a long time to diverge from each other; seeding must be done carefully to avoid bad states.
While jump-ahead is possible, algorithms to do so are slow to compute (i.e., require several seconds) and rarely provided by implementations.
Summary: Mersenne Twister is not good enough anymore, but most applications and libraries are not there yet.