Crack, если ты хочешь собрать массив из случайных элементов другого массива, то лучше использовать shuffle и не париться с foreach, но дело конечно твое, я ограничивать не буду.
Разделение в данном случае нужно для того, чтобы в представлении оперировать с готовыми данными, а не с логикой их получения. Представление просто выводит то, что ей дано извне. "Мухи отдельно" и все такое