First choice of replica for given external dictionary should be based on randomness instead of order in configuration file.

{
    Poco::Util::Application & app = Poco::Util::Application::instance();
    std::lock_guard<std::mutex> locker(mutex);
    
    PoolPtr * full_pool = nullptr;
    for (size_t try_no = 0; try_no < max_tries; ++try_no)
    {
        full_pool = nullptr;
        for (auto & priority_replicas : replicas_by_priority)
        {
            Replicas & replicas = priority_replicas.second;
            for (size_t i = 0, size = replicas.size(); i < size; ++i)
            {
                PoolPtr & pool = replicas[i];
                try
                {
                    Entry entry = shareable ? pool->get() : pool->tryGet();
                    if (!entry.isNull())
                    {
                        
                        
                        std::rotate(replicas.begin(), replicas.begin() + i + 1, replicas.end());