You can create the shadows with events. For the method I gave you just make sure that the number of shadows matches the number of patrol. If the number is less create another, and if it's more delete one.
Another method would be to use an instance variable in the patrol to keep track of the UID of it's shadow.
You can make them move out of sync with a Boolean instance variable and the wait action:
+patrol: is NOT patrolling
+for each patrol
--- patrol: set patrolling to true
--- wait random(2,4) seconds
--- patrol: set angle of motion...
--- patrol: set speed...
--- wait 1 second
--- patrol: stop
--- patrol: set patrolling to false
Of course you could alternatively use a variable to make a timer.