So, the code posted is for the dirt tile, then the grass edges that will lay on top of it. For some reason, anywhere that the grass edges overlap the dirt, the dirt itself doesn't randomize on run time. I'll show what I mean in the image below:
As you can see, in the bottom dirt patch, the only tile that has changed is the center tile with no grass overlapping it.
I'm not sure if there is something off with the code or if it's a bug, considering how simple the code it.