Comment by jackzhuo
OP here. This discussion is exactly why I implemented the Box-Muller transform!
You are right that humans don't split perfectly randomly (Uniform Distribution). We tend to aim for the middle but miss slightly.
In my code, I modeled this 'human splitting action' using a Gaussian (Normal) distribution centered at 50% of the pile, with a standard deviation. This simulates the user trying to split the stalks roughly in half, rather than just picking a random number from 0 to 49.
Interestingly, my Monte Carlo simulations showed that even with this human bias (splitting near the middle), the final modulo-4 probabilities remain stable. So the algorithm is robust even against our 'imperfect' hands.
Very cool, thanks for the response. Neat project btw.