I don’t know if you can do this with simple modifier work. Modifiers work on the y axis, not the time axis.
But there are things you can do to repeat keyframes (copy/pasting in graph editor view), and then you can randomize keyframe timing through the whole thing by turning on proportional editing with (wide) random falloff and dragging in the x axis.
That falloff affects different channels independently. If you want the location channels linked, you can drive them from some single-channel property, like the x-rotation of an empty, and then keyframe and randomize that value instead.
Depending on what you want to do, there can be constraint-based solutions. You can shrinkwrap an object to one of four corners pretty easily, you can shrinkwrap to a noise-displaced sphere to get initial randomness about which of the four corners get chosen, and you can uv warp your sphere to have that random value change over time. You can use rigid-body physics to move smoothly to shrinkwrapped positions if you don’t want to jump.