How to randowm spawn with already exist position

I have a issue with my random position , i have some position , and i want to random prefab in those position , but when play , the prefab in the same position :

[SerializeField]
private GameObject spawnPrefab;
[SerializeField]
private Transform positionPrefab;
[SerializeField]
private float radius;

//// Use this for initialization
private int spawnRandom;
void Start()
{
   for(int i = 0; i <= positionPrefab.Length; i++)//the loop use for run all the position in inspector
    {
        RandomSpawn();
        print(positionPrefab);
    }
}

private void RandomSpawn()
{
spawnRandom = Random.Range(0, spawnPrefab.Length);//random the prefab in the position
int randomPosition = Random.Range(0, positionPrefab.Length);//random position in unity

    if (spawnPrefab[spawnRandom].tag == "Oil") // is the Prefab is Oil , rotate it
    {
        Instantiate(spawnPrefab[spawnRandom], positionPrefab[randomPosition].transform.position, Quaternion.Euler(0, 0, 90));
        
    }
    else
    {
        Instantiate(spawnPrefab[spawnRandom], positionPrefab[randomPosition].transform.position, Quaternion.identity);
    }
  
}

positionPrefab is not assigned