> Many random number generators in use today are not very good. There is a tendency for people to avoid learning anything about such subroutines; quite often we find that some old method that is comparatively unsatisfactory has blindly been passed down from one programmer to another, and today’s users have no understanding of its limitations. — The Art of Computer Programming, Volume 2, by Donald Knuth
That hackernoon post is... unimpressive. Its main argument seems to be that Math.random() uses a PRNG instead of a source of true randomness. That is not compelling. It becomes less compelling accompanied by claims like this:
> So now the question is: what PRNG does JavaScript use?
> The answer: none.
There is zero discussion of why xorshift128+ might be suitable or unsuitable for any given purpose, or of what its characteristics are. The whole thing is just the observation that, if you can understand the raw mechanics of the PRNG, you can have a good laugh at the idea that deterministic bitwise operations are "random".
It does mention that browsers standardized on xorshift128+ in the nearly-forgotten days of 2015, which would seem to make your Knuth quote inapt.
There is absolutely nothing wrong with that. What kind of random number generation you need depends entirely on your use case, and for my use cases it's just fine since "better" random number generators won't give me better results. If you really have strict requirements on your random number, then yeah, you will have to find another solution.