I can't see why you would use a normal distribution, which is a bell-shaped curve—not what you want. Use a uniformly-distributed random variable.
Solution $1$ is acceptable only if you don't care that there is quite a bit of dependence between customer rewards (since it seems you basically assign $90$ one-percent coupons, $5$ ten-percent coupons, $3$ twenty-percent coupons, and $2$ free coupons in cycles of $100$ customers). This ensures that every $100$ customers, the counts are precisely as expected, but it removes luck entirely from the equation.