What form do you have your variations in?
If your ellipses are axis aligned, then you can use the rectangle command. So if you've got a centroid and width and height, then you can do this:
rng default
centroid = 10*rand(1,2);
width = rand;
height = rand;
rectangle('Position',[centroid(1)-width/2, centroid(2)-height/2, width, height], ...
'Curvature',[1 1])
If they're not axis aligned, then you need to draw the ellipse yourself, but it's not that difficult. Consider the same case, but instead of width and height, we have two basis vectors at 90 degrees to each other.
ang = 2*pi*rand;
r1 = rand;
v1 = [r1*cos(ang), r1*sin(ang)];
r2 = rand;
v2 = [r2*cos(ang+pi/2), r2*sin(ang+pi/2)];
Then we can use the parametric equation for the ellipse to draw it like so:
t = linspace(0,2*pi,50);
plot(centroid(1)+v1(1)*cos(t)+v2(1)*sin(t), ...
centroid(2)+v1(2)*cos(t)+v2(2)*sin(t))
This approach also works for the axis aligned case. You just need to make v1 and v2 look like this:
v1 = [width/2, 0];
v2 = [0, height/2];
Does that make sense?