code: public T    getQueue()
      {
          Preconditions.checkState(state.get() == State.STARTED, "Not started");
  
          List<String>    localPreferredQueues = Lists.newArrayList(preferredQueues);
          if ( localPreferredQueues.size() > 0 )
          {
              String      key = localPreferredQueues.get(random.nextInt(localPreferredQueues.size()));
              return queues.get(key);
          }
  
          List<String>    keys = Lists.newArrayList(queues.keySet());
          String          key = keys.get(random.nextInt(keys.size()));
          return queues.get(key);
      }
docs: Return one of the managed queues - the selection method cannot be relied on. It should
  be considered a random managed queue.
  
  @return a queue