Jeff explained this in detail on the Stack Exchange blog:
Here’s how it works. Starting with a list of the last 3,000 active
questions:
- drop questions containing any of your ignored tags
- drop closed questions if you lack the reputation required to vote for reopening
- drop questions scoring -4 or lower
Next, apply the following score formula to the remaining questions:
- your interesting tags: +1,500 per interesting tag, up to +2,000 total
- your top 40 scoring tags: maximum of +1,000 per tag (scaled), up to +2,000 total
- question score: +200 × score, up to +1,000 total
- total answer score: -200 × score, up to -1,000 total
- number of answers: -200 × answers, up to -1,000 total
- number of views: -15 × views, up to -1,000 total
- question last activity date: -1 × (seconds / 15)
Count it all up and take the top 90 by score.
We also mix in a few random questions from the last 3,000 — 10% (9)
for logged in users and 20% (18) for anonymous users. We’re like DJs
trying to spin a mix of songs — some you might know by heart and love,
others you might not have chosen for yourself, but could possibly like
if you gave them a fair listen.
On Metas, the threshold to drop questions (the 3rd bullet) is -8 or lower.