Предполагая, что нет специальных структур данных или порядка, вы можете выполнять итерацию по каждому элементу вашего NSMutableArray, отслеживая индексы и расстояния 3 ближайших спрайтов во втором NSMutableArray, упорядоченном по возрастанию расстояния. Всякий раз, когда вы находите спрайт ближе, чем третий элемент вашего временного массива, вы отбрасываете третий элемент и вставляете индекс и расстояние этого нового спрайта в массив. Это немного сложно, но должно быть довольно эффективно.
Если вы хотите получить фантазию, вы можете использовать более сложную структуру данных для объединения спрайтов в зависимости от их местоположения. Для 10 спрайтов это кажется намного более беспокойным, чем стоит.