There's some randomness to it. There's also the fact I fluctuate in rank a lot. Last week I went from 47 to 51, and was stuck there for days. Now I'm at rank 39, after rising from 44 a few days ago.
Dan describes it as a "virtual racetrack", where your ranking adds a certain amount of points to how close you are to the finish. When you reach that virtual finish line, that's when you're allowed to produce a block. Thus people in higher rankings move up faster on that virtual racetrack.