Я бы сказал, что вы ударили ноготь по голове словом «фильтр». Я не самый большой поклонник параллельного мультивыбора, как то, что вы описываете, но это почти не имеет значения, какой бы элемент UX вы ни использовали, вы столкнетесь с проблемой, учитывая тысячи элементов. Итак, фильтрация. Фильтрация по строке поиска - это хорошее решение, но я подозреваю, что поиск по имени - не самый быстрый способ добраться до пользователей, которых хочет администратор. Что еще вы знаете о пользователях? Как они сгруппированы.
Например, если бы эти пользователи были учениками старшей школы, мы бы знали о них некоторые метаданные: в каком классе они учатся? Сколько им лет? В каком потоке они учатся? Каков их средний балл? ... обеспечение фильтрации этих фрагментов метаданных является одним из способов ограничения количества студентов, доступных одновременно. Если у вас слишком много, чтобы начать, и это вызывает проблемы с производительностью, подумайте только об их ограничении, у вас есть кнопка, чтобы загрузить больше, и показывать только 100 за раз.
Обновление: последний пункт здесь по сути то, что Джесси предлагает ниже.