Your problem is that you’re running an instance of randpos.duckMove on each duck in the scene.
That means that the duck’s script should only be dealing with that particular duck’s behaviour. Instead, you have each duck applying behaviour to every duck. So for each duck that’s present in the screen, every duck gets the movement applied multiple times.
Rather than have the randpos.duckMove controller on the duck, place it on the camera. The camera will run the script once per frame, loop through each duck, give them their instructions, and that is that.
(Haha…took too much time trying to figure out how to word this. Sort of one of those things that much harder to explain than it really should be)