Board game help [NEWB]

public class dice_roll : MonoBehaviour {

public List<Transform> BoardPosition = new List<Transform>();
//public Transform[] BoardPosition;

public int newPosition;
public int CurrentPosition = 0;

public int DiceValues;

//public dice_raycast Dice1;
//public dice_raycast Dice2;

public float speed = 3;

void Start()
{
	if (BoardPosition.Count == 0) 
		
		BoardPosition.Add (GameObject.FindWithTag ("SquareBoardPosition").transform);
	//BoardPosition [CurrentPosition].transform.position = transform.position;
}

void Update()
	{
				//Only update the position if the dice was rolled and the rolled bool is true if the dice is not moving anymore.
	if (Input.GetKeyDown ("r")) {
		DiceValues = Random.Range (1, 6);   <-------- point of error.
		newPosition = CurrentPosition + DiceValues;      //Not Sure about this, it's get ran multiple times.

	}

		if (newPosition < BoardPosition.Count) {

			//transform.position = BoardPosition[CurrentPosition].position;

			transform.position = Vector3.MoveTowards (BoardPosition [newPosition].position,
				BoardPosition [newPosition].transform.position, Time.deltaTime *  speed);

			if (transform.position == BoardPosition [newPosition].transform.position) {
				CurrentPosition = newPosition;
			}
			//newPosition++;

			print ("Dice: " + DiceValues + " position: " + CurrentPosition);

		}

	}

}

Corrected!

You probably want to set:

Dice1.rolled = false;

Inside your if statement so you know that you have already used the values from rolling the dice this time.