1) В редакторе единиц создайте пустые игровые объекты в местах, в которых вы хотите, чтобы цель порождалась.
2) В коде, в вашем игровом логике, отвечающем за создание конечной цели, объявитеоткрытый массив GameObjects
3) Используя инспектор, добавьте пустые GameObjects в массив в своем игровом логическом поведении
4) В коде случайным образом порождайте цель и «присоединяйте» ее кмир, использующий код вроде:
var rand = new Random();
i = rand.next(myGoalPositions.Length);
var goal = Object.Instantiate(myEndGoalPrefab, myGoalPositions[i], false );
Чтобы заставить их не соприкасаться ни с чем ... самый простой способ - построить свой мир, чтобы они ни с чем не пересекались.