Этот вопрос с добавленным ограничением.
Я готов разрешить неравномерный отбор, если он не будет терпеть неудачу.
Учитывая, что " наборы обычно реализуются как деревья двоичного поиска", и я ожидаю, что они будут содержать информацию о глубине или размере для балансировки, Я бы ожидал, что вы сможете сделать какое-то взвешенное случайное блуждание дерева. Однако я не знаю ни одного отдаленно портативного способа сделать это.
Изменить: ограничение не является допустимым временем.