Идея была записывать в пустой массив объекты и потом сравнивать текущий объект со всеми, но не понимаю, как до конца реализовать эту логику
А чего тут понимать? Цикл, или forEach, или some, или every… Вариантов масса.
как определять новое рандомное положение объекта
А стоит? Лишние телодвижения, легче дождаться, когда рандом выдаст непересекающуюся позицию.
Определение потребуется только если объекты велики, а зона размещения ограничена. Тогда определять минимальную величину возможного расстояния между данными объектами и пулять на это расстояние + эпсилон.