In Construct Random(2) will return 0 or 1, but not 2.
A way that's simpler than checking for overlap at offset, just check for overlap. If it's true, undo the last movement and rotate 90 or -90.
+ Ghost: Ghost overlaps Wall
-> Ghost: Move 0-Ghost[Bullet].Speed*TimeDelta pixels at Ghost.Angle degrees
-> Ghost: Rotate {90,-90} @ (Random(2)+1) degrees clockwise
[/code:33czl20k]