Bug? Multiple class instances - Static variables overwriting each other

In a class, static means that all instances of the class share the variable. That hardly seems like what you want. Instead of static, the local variables in the method should be class fields:

class randomInstance
{
  public:
    uint8_t id;
    
    randomInstance         (uint8_t instanceNum);
    void memberWithStatics (bool showVars = false);

  private:
    int32_t lastExecute, ticks;
    int32_t colour;
    int32_t lastColour;
};

Provide the initial values in the constructor.