A few months ago I wrote a Linux shell script which calculates the prices for each set; it's imperfect, and can use significant polish, but it may shed some light on this question. Please note that it does rely upon some assumptions which do not necessarily hold for all of the sets in consideration:
- A booster pack contains 15 cards: one rare/mythic rare (with a 1/8 chance of mrare), three uncommons, and 11 commons. (This does not hold for early sets.)
- All cards of a given rarity are equally probable in each card "slot" of that rarity. (It should be noted that it does not distinguish a land slot, but includes it as a common. This should pull down the average for Zendikar specifically. Also, it allows a theoretical M14 pack containing 11 Merfolk Spy's.)
- The "average" prices, which are obtained from TCGPlayer's website, are reliable. (If a set does not have proper data from this source, it is ignored. Most sets do, fortunately.)
- Foil cards are ignored entirely.
Under these constraints, the booster packs with the highest EV, as of this date (1/13/2014), would be:
$162.09 Arabian Nights
$87.43 Unlimited Edition
$12.40 Revised Edition
$11.48 Modern Masters
$11.25 Portal Second Age
$9.07 Future Sight
$6.66 Fifth Dawn
$6.64 Urza's Saga
$6.21 The Dark
$3.16 Dark Ascension
Obviously, most of the first few sets are off, since they didn't have 15 card packs. (Beta and Alpha are omitted because the sheer rarity of the cards there means some don't have prices listed.) I included Theros, the most recent set, to illustrate that, by these calculations, a pack of even the most current set is expected to be worth more when opened ($4.71) than when sealed ($4.00) -- which should be taken into consideration when interpreting these values. (Theros was actually nearer $5.50 when I originally wrote this script -- quite a value drop.) Also, it's interesting to note that the weakest three sets are Chronicles, Dark Ascension, and Homelands.
For those interested, the bash scripts are PriceCheck and MassPriceCheck;
./PriceCheck -s /path/to/pricefile
takes a downloaded version of the price page for a set (pricefile) and prints the EV of a pack under the assumptions above. (Without the -s ("simple") flag, it'll also print the EV of the individual card "slots" as well.) When executed in the same directory as PriceCheck,
downloads all of the pricefiles for each set (including garbage pseudosets listed there, like Duel Decks, which I haven't bothered to write code to exclude), dumps that into the directory
and runs PriceCheck on each of the pricefiles systematically. The scripts are pretty terrible, but they weren't really meant for anything more than sating my own curiosity, if that assuages any guilt.