You can randomize targets easily with System: Pick Path_Car where Path_Car.path = random(1, max_path)
For choosing a path at a crossroad, if you have 3 directions, just choose(1,2,3) or similar (say, 1 left, 2 straight, 3 right). You could store in each Path_Car, its available destination Path_Car(s).
Also rather than check for overlapping with Path_Car once the car arrives, I'd set it when you first choose the target (suggestion).
For performance, C2 won't render what's not onscreen, and you can't pathfind to something offscreen anyway.