I too like this idea. In fact, I would do it as a silent auction. Every passenger can enter a maximum dollar amount he/she is willing to pay for an upgrade. Nobody knows what anyone else is bidding. The highest bidder(s) get the upgrades.
They'd lose a lot of the loyalty they have with FFs with this kind of system.