Unique variables for ScriptableObjects?

ScriptableObjects are very new to me but they seem really good so I’ve been trying to implement them into my game. I’m currently mainly using them to store information about type of ores such as what ore is it, how much points they give, their sprites, etc to be used for generating these ores around a map. It works perfectly fine but I’m wanting to have sprites randomized so not all of the same ore looks exactly the same. The issue is that I can’t just randomize the sprite used and place it back within the ScriptableObject as that sprite will be used among all objects that use that ScriptableObject.

I was wondering if there was any way I could get around this without having to create or store the randomized sprite within a completely different class? So i want to be able to store the randomized sprite within the ScriptableObject but have it be different for each ore that uses it.

I know this is kind of vague, but would the following code help?

using UnityEngine;

public class OreData : ScriptableObject {
	[SerializeField] private Sprite[] sprites = new Sprite[0];
	
	public Sprite GetRandomSprite() {
		int randomIndex = Random.Range(0, sprites.Length);
		return sprites[randomIndex];
	}
}

This would let you choose an array of multiple Sprites that are possible for your 1 ScriptableObject, and then your other code can publicly get a random sprite from the list using GetRandomSprite().