Beh, in teoria puoi creare una seconda tabella con un campo id, uno tempo e l'altro numero.
Quando un utente inserisce un coupon inserisci un record dentro questa tabella inserendo il time() al momento dell'aggiunta e un numero che, ad ogni coupon, si aggiungi di 1.
Così hai un numero crescente che ti indica quante persone hanno utilizzato il coupon e, se il numero è 20 o 40 o 60 o 80 o 100 (magari c'è un modo, tipo multiplo di 20, poi si trova) allora l'utente va alla pagina di vittoria, altrimenti viene reindirizzato ad una pagina con scritto: mi spiace, non hai vinto.
Potresti aggiungere anche un campo "codice" che salva il numero del coupon, così se è già stato usato lo "annulli".