public function toPrioritizedArray()
    {
        // Reset the available managers every $this->unavailableCheckAt requests.
        if (($this->resetCounter % $this->resetAt) == 0) {
            $this->resetAvailableManagers();
        }
        $this->resetCounter++;

        $available =& $this->managerStatus[self::FLAG_AVAILABLE];
        $unavailable =& $this->managerStatus[self::FLAG_UNAVAILABLE];

        // Shuffle the available managers to distribute load.
        shuffle($available);

        // Add the unavailable managers at the end.
        $managerList = array_merge($available, $unavailable);

        return $managerList;
    }