I applaud the amount of effort you put into this. I don't want to knock your effort, but I want to point a few things out.

Statically, 100 is pretty meaningless with 20 options. It's been far to long since I took a stats class to tell you what would be meaningful.

I always roll my eyes when I see posts claiming "omg the RNG is so buggy wtf!" It almost always comes from a place of biased pattern recognition.

I would happy to bet money that Larian has some sort of unit test that uses their d20 system, rolls a million results, and compares the result to see if it deviates from an expected range. This is done so that if any change goes into the game that breaks this system by accident it is detected before getting submitted.