void SaikoroDO () {
Vector3[] moves = new Vector3[] { new Vector3 (1, 0, 0), new Vector3 (-1, 0, 0), new Vector3 (0, 0, 1), new Vector3 (0, 0, -1) };
int detame = Random.Range (0, 6);
int layerMask = LayerMask.NameToLayer ("Susumeru");
RaycastHit hit;

for (int i = 0; i < detame; i++) {

for (int m = 0; m < moves.Length; m++) {
if (Physics.Raycast (transform.position + moves[m], Vector3.down, out hit, layerMask)) {
transform.position = transform.position + moves[m];
break;
}
}
}
}

進む方向が360度の中で一つしかない条件なら基本はこんな感じ。