Not so much a magic trick as a math trick, in that I can prove it works in theory but I have never tried it in practice.
Take a very long one-dimensional frictionless billiard table, with a wall at one end. Away from the wall, place a billiard ball with mass $10^{2n}$ for $n$ positive. Between that ball and the wall, place another billiard ball with mass $1$. Then start the heavy ball rolling slowly towards the light one. Of course, they bounce, setting the light one traveling quickly towards the wall, which it bounces off, and then it hits the heavy ball, etc., until all the momentum from the heavy ball has been transferred and it starts rolling away.
Assume that all collisions are perfectly elastic. Then at the end of the day, there will be finitely many collisions. Indeed, the number of collisions will calculate the digits of $\pi$, in the sense that there will be $\lfloor \pi \times 10^n \rfloor$ collisions.
I prefer this method of calculating $\pi$ much better than the probabilistic one.

