inaccessible due to protection level, but it's public

the error is:
ballmovement.balldirection is inaccessible due to its protection level
the member ballmovement.balldirection cannot be used as method or delegate

and here the code:

using UnityEngine;
using System.Collections;

public class ballmovement : MonoBehaviour {

	public Vector3 balldirection = new Vector3(0, 0, 0);
	public float randomX = Random.Range (0.2F, 1F);
	public float randomY = Random.Range (0.2F, 1F);

	// Use this for initialization
	void Start () {
		balldirection = balldirection (randomX, randomY, 0);
	}
	
	// Update is called once per frame
	void Update () {
		transform.Translate (balldirection);
	}
}

balldirection = balldirection (randomX, randomY, 0);

This line makes no sense. Are you trying to assign the vector values (randomX, randomY, 0) to balldirection?

If so:

balldirection = balldirection + new Vector3(randomX, randomY, 0);

In future, can you not paraphrase Errors, please post the Error as it appears in the Editor in its entirety.