Не уверена, что разработчики когда-либо отвечали на этот вопрос. Но очевидно, что для формирования списка используются обычные совпадения в анкетах. Чем их больше, тем вероятнее вы знаете этого человека. Что это могут быть за совпадения? Прежде всего, общие друзья, дальше учебное заведение и год выпуска из него, город, еще, возможно, участие в группах.
Раньше была отдельная кнопка с возможными друзьями. Теперь список выпадает просто при поиске людей. В Фейсбук, кстати, используется тот же принцип при выведении списка людей, которых вы можете знать. Но там помимо прочего, есть механизм поиска и рекомендации друзей через почту.
По номеру контактов в вашем телефоне, если кто-то зарегистрирован по этому номеру в ВК , оно высвечивается в ленте в списке возможных. Вот так вот.