def METHOD_NAME(self, configs: list[Configuration]) -> list[tuple[float, Configuration]]:
    """Sort the given configurations by the acquisition value.
    Parameters
    ----------
    configs : list[Configuration]
    Returns
    -------
    challengers : list[tuple[float, Configuration]]
        Candidates ordered by their acquisition value (descending).
    """
    assert self._acquisition_function is not None
    acq_values = self._acquisition_function(configs)
    # From here
    # http://stackoverflow.com/questions/20197990/how-to-make-argsort-result-to-be-random-between-equal-values
    random = self._rng.rand(len(acq_values))
    # Last column is primary sort key!
    indices = np.lexsort((random.flatten(), acq_values.flatten()))
    # Cannot use zip here because the indices array cannot index the
    # rand_configs list, because the second is a pure python list
    return [(acq_values[ind][0], configs[ind]) for ind in indices[::-1]]