The dice always match the game format, in my experience.
I've never seen anyone roll a physical dice when playing a virtual game...nor have I ever seen anyone roll a virtual dice when playing a physical game.
I've found that, online, the number of "exceptional rolls" from groups I've let "use" physical dice in online play significantly outperform even the hottest misreaders. Which is why I used shared visibility dice programs ...
Until it broke, I used the one at CatchYourHare.com; I then switched to a dice bot in Discord.
And then, since I found the Discord Bot I was using was statistically skewed too far for my comfort. (And skewed in an odd way - 3 & 5 were more that twice 6's and 1.5× 1's. on well over 200 d6's - 4 consecutive sessions of Pendragon with heavy combat action. The d20 rolls had a similar discrepancy.)
So I wrote my own Discord bot. In Python. I only run it during games.
I use a variation on the χ² test of fit.
x = √{∑(e-a)²/n}
Where
e = rolls per side (aka expected rolls)
a = actual results per side
n = number of trials =sides × e
x = poorness of fit.
x = 0 is not a random die, but a deck of cards, using each card, and not shuffling until the dec is exhausted.
0.1 ≤ x ≤ 0.5 is a good fit. Any lower, and its time to test for patterns... and higher, and its skewed
the bigger e is, the more reliable the result, 5 is the minimum for any validity, but above 30, becomes diminishing returns; 10's pretty reasonable for hand rolled, I use 50 for PRNG. The bigger x is, the less fair the die or PRNG.
PRNG:
Pseudo-
Random
Number
Generator. the technical name for the computer programs that generate "random numbers."
Python 3's Random.shuffle() method is good enough for me, and my players.