World and Local Axis out of Alignment

This one’s a little hard to explain. I have an object, parent with 1 child, the parent has the scripts(movement, rotation,animation ect) the child has the Renderer.I get weird movement and I think I narrowed it down to the local and global axis being out of alignment.
I’ve tried switching from Space.Self and Space.World. Any ideas why this might be happening?

Here’s the snippet where the rotation and movement happens:

		if(doRotate == 1){
			transform.Rotate(0,Random.Range(-180,180),0,Space.Self);
		}
		transform.Translate(Vector3.forward * Time.deltaTime * curSpeed);

Your rotate spins the cube to a random facing.

Then you translate it along its new forward.

That sounds pretty weird to me. What’s it -supposed- to do?