moving toward angle with rotation

hi
i set my sprite rotation to an angle in start
then i move my object to forward
this work
but i want my object rotate when is moving (without changig direction)
see this code :
using UnityEngine;
using System.Collections;

public class rockmovement : MonoBehaviour {

	public int speed = 10;

	// Use this for initialization
	void Start () {

		transform.Rotate(new Vector3 (0,0,Random.Range(-20,-160) ) );

	}
	
	// Update is called once per frame
	void Update () {

		Vector3 movement = new Vector3(speed,0,0);

		// this rotate not working well
		//transform.Rotate (0,0,Random(-50,50));

		movement *= Time.deltaTime;

		transform.Translate(movement);

	}
}

You would have to save direction and use a world direction. Something like:

using UnityEngine;
using System.Collections;

public class rockmovement : MonoBehaviour {
	
	public float speed = 10.0f;
	private Vector3 movement;
	
	void Start () {
		transform.Rotate(new Vector3 (0,0,Random.Range(-20,-160) ) );
		movement = transform.right * speed;
	}
	
	void Update () {
		transform.Rotate (0,0,Random.Range(-50.0f,50.0f));
		transform.Translate(movement * Time.deltaTime, Space.World);
	}
}

The world movement is saved in Start(). Then the Translate() use Space.World to move in world space rather than local space.