Speak the Sky first suggested 100 d6s, getting rid any dice that show 1s. You can get similar results with a dozen d10s (mean 30.09 rolls, standard deviation 12.13) or 7 d12s (mean 30.37 rolls, standard deviation 14.08).
The larger the die size, the higher standard deviation (i.e. "swingier" results). You *could* try 2 d20s for 30 rolls on average, but you'd still have a lot of games with more than 50 rolls.
I also offer a variant to stevozip's method: Shuffle a deck of cards with a single joker. Draw cards until you hit the joker. It *could* happen the very first draw, but on average it happens around draw 27. The longer you play, the more likely you are to draw that joker. Std dev is 15.20, so you're not far off from the 20-40 draws Speak the Sky mentioned. As a bonus, no game is going to drag on for more than 53 rounds.
Note: I haven't tried all of these yet, just typed up some quick python code.