Realized what I needed is to understand how to rotate a point around another point, this post helped a lot to realize the answer: Rotate a point around another point
Here is the solution if anyone is interested:
Assuming I have a plane consisting of a center position, and a size in X and a size in Z, I generate a random position within:
float randomX = Random.Range(centerPos.position.x - sizeHalfX, cCenterPos.position.x + sizeHalfX);
float randomZ = Random.Range(centerPos.position.z - sizeHalfZ, centerPos.position.z + sizeHalfZ);
Vector3 randPos = new Vector3(randomX, centerPos.position.y, randomZ);
Now I have a random position within a plane which is no rotated in the Y axis. So once we have the rotation in Y (assuming it is degrees), we can apply it to the random position, so the random position will fall within the rotated plane:
float angleInRadians = -(rotation * (float)(Math.PI / 180.0d));
float cosTheta = (float)Math.Cos(angleInRadians);
float sinTheta = (float)Math.Sin(angleInRadians);
float posX = (cosTheta * (randPos.x - centerPos.position.x) - sinTheta * (randPos.z - centerPos.position.z) + centerPos.position.x);
float posZ = (sinTheta * (randPos.x - centerPos.position.x) + cosTheta * (randPos.z - centerPos.position.z) + centerPos.position.z);
Vector3 finalPos = new Vector3(posX, centerPos.position.y, posZ);
Please note "centerPos" refers to the center position of the plane.