Creating ellipses with different colours and sizes

It is laggy because you are using the delay() function 30 times in your draw() loop it means that you can’t draw a frame faster than 30*50 = 1500ms (1.5 second)…

You don’t need that and you should never use the delay() function inside the draw() loop.

Edit:
I think I get what you try to do but the delay() function does not work as you want them to work…
The image won’t be drawn onto the screen until the end of the draw() loop.
It means that this peace of code:

int x = 0;

void setup() {}

void draw() {
  background(20);
  fill(200);

  ellipse(x, 50, 20, 20);
  delay(500);

  ellipse(x, 100, 20, 20);
  delay(500);

  x = x + 1;
}

is doing exactly the same thing as this one:

int x = 0;

void setup() {}

void draw() {
  background(20);
  fill(200);

  ellipse(x, 50, 20, 20);
  ellipse(x, 100, 20, 20);

  delay(1000);

  x = x + 1;
}

Notice the 2 delay(500) in the first one and the 1 delay(1000) in the second one.

If you want to draw your ellipses one by one, you’ll need to figure out another, more complex, way.