I've partly written an SQL script to scan a thread, apply a set of rules and then randomly select a single post as the winner.
Then wrap some PHP around it so it can generate a post to the thread saying ' And the winner is ...'
Still some testing to do with a local copy of SMF after I generate some test threads.
The problem is that it's such a nice day outside and the forecast for the weekend is also looking good....
Edit:
An even easy option may be just to create a poll with a single question i.e. 'Do you want free stuff?' (this would need a change to existing code as a poll is assumed to have at least two choices. Or perhaps 2 choices but both are the same?)
The code is already present to check if a user has already voted and to lock out users below a certain number of posts.
As how each user voted is logged, it would just be a matter of selecting a random entry from the list.