Most upvoting systems on the web are generally flawed. Using statistics however you can get a better representation as to what is actually the most prefered.
Bayesian weighting helps get a more accurate analysis.
One simple way to implement this method is shown below:
br = ( (avgnumvotes * avgrating) + (thisnumvotes * thisrating) ) / (avgnumvotes + thisnumvotes)
Legend:
* avg_num_votes: The average number of votes of all items that have num_votes>0
* avg_rating: The average rating of each item (again, of those that have num_votes>0)
* this_num_votes: number of votes for this item
* this_rating: the rating of this item
IMDB uses this method in there movie ratings (almost).
The Problem here however is with what the shirt voting is trying to acomplish.
The voting on shirts is suppose to predict how the shirt will do in sales.
Since a t-shirt contest elimiates down voting or a stratefied rating system then
the best remedy to the problem I see in the voting system is the voters themselves.
The best solution would then have to be that only paying customers should get to vote.
(shirt woot uses this strategy)
One simple way to implement this method is shown below:
br = ( (avgnumvotes * avgrating) + (thisnumvotes * thisrating) ) / (avgnumvotes + thisnumvotes)
Legend: