Meta Stack Exchange is where users like you discuss bugs, features, and support issues that affect the software powering all 158 Stack Exchange communities.

What is meta?
Here's how it works:
  1. Any Stack Exchange user can ask a question
  2. The community provides support, votes on ideas, and reports bugs
  3. Your voice helps shape the way Stack Exchange operates

Currently answers with equal score are ordered randomly on each page request. I understand that this is intended to make voting fairer. But that the order changes each time you refresh the page is a bit annoying.

What I'd prefer is an ordering that keeps the fairness, but doesn't change all the time. My answer to this is to combine the user id and the answer id as secondary score criterion.

When looking at a single page this is practically indistinguishable from the current sort order. The difference only become apparent if you view the same page multiple times. My suggestion is similar to seeding the PRNG with the userid instead of the time, except that it has better stability properties than that.

One simple implementation could be:


With an effective ordering of OrderBy(score).ThenBy(answerId^(userId*1299019))

share|improve this question
If you want totally stable ordering select the "oldest" tab. Slightly less stable is the "activity" tab as the most recently edited answer is at the top. – ChrisF Jul 21 '11 at 12:52
Both gives me Math error – genesis Jul 21 '11 at 12:56
@ChrisF I like ordering by score, but I don't like how answers change their order on each refresh if they have the same score. Even if nothing happened in between. [at]genesis What do you mean? – CodesInChaos Jul 21 '11 at 12:56
@CodeInChaos: try to put 99252^(194007*1299019) in windows calc (do not copy it, just rewrite it) – genesis Jul 21 '11 at 12:59
@genesis: Works just fine for me on the Windows 7 calculator... I get 252,018,779,133 – Cody Gray Jul 21 '11 at 13:01
My example is C# pseudo code. With ^ I mean exclusive-or. And this needs to run in an unchecked context, so that overflows disappear. – CodesInChaos Jul 21 '11 at 13:03
It works for me now. It was giving me some strange error before – genesis Jul 21 '11 at 13:04
Could somebody explain why they prefer the current ordering over this? – CodesInChaos Jul 21 '11 at 13:22

I think it would be better to place user with less-reputation to the top, because High Reputation Attract Too Many 'Up-Votes' than less-reputated users.

share|improve this answer
Personally I don't have anything against that order. But I don't think you will have a chance to convince Jeff of using something that doesn't appear random as tie-breaker. So please compare it with the current ordering. – CodesInChaos Jul 21 '11 at 13:05
@CodeInChaos: I deleted that paragraph 3 mins ago already – genesis Jul 21 '11 at 13:07
Irrelevant, since high reputation does not attract upvotes. – Gilles Jul 21 '11 at 14:04
@Gilles: It'S just your opinion ... But I caught myself clicking upvote just because it was Jon Skeet – genesis Jul 21 '11 at 14:05
@genesis My opinion is backed by data. If you disagree with my analysis of the data, please tell where you think my analysis is flawed. – Gilles Jul 21 '11 at 14:26

If any specific order is needed to distinguish between answers with equal score, I'd order them by age (that means, oldest first). This is fair in the way that, a new answer that simply re-hashes an older answer (as I've often noticed), shouldn't be listed before the older one. I haven't really checked, but somehow I assumed this was the way they were displayed anyway.

share|improve this answer
I think it was originally like that, but they changed it to give later answers a better chance and thus mitigate the fastest-gun problem. – CodesInChaos Jul 21 '11 at 13:30
@Code Ah, I didn't know that. To me the order doesn't matter much, since I tend to read before I vote ... – takrl Jul 21 '11 at 13:32
Order in the context of voting doesn't matter much to me either. But sometimes I refresh the page to check for new answers. And the random change in order makes that annoying. – CodesInChaos Jul 21 '11 at 13:34
@Code Right. This is a context I haven't experienced very often. But I can see the point ... – takrl Jul 21 '11 at 13:39

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .