Moreover, I have also participated in a few lotteries for various things (e.g. Half Dome permit), but did that completely by the book.
A few things that help make system fair (TM):
- price them right, maybe even charge a bit premium for reservation vs. walk-ins
- make cancelation non-free and charge at reservation time, even a few dollars prevents spurious reservations "just in case"
- have a waiting list, if there is a cancellation, you can automatically sell it to someone else
- do some load management, e.g. weekend prices, discounts...