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.
Prior to do that, I would say they want to change into a system of awarding upgrade points which then can be used for this bidding. If they use regular miles for this purpose (and don't award more), that devalues the benefit.
So, maybe someone should get the biddingforupgrade.com domain name if it is not already taken