Reveal-or-Obscure: A Differentially Private Sampling Algorithm for Discrete Distributions