Come out of loop and execute Setup again
You could just call setup() yourself:

void loop() {
    if (some_condition) {
        setup();  // reinitialize everything
        return;
    }
    // etc.
}


But, as Majenko puts it, if you nee to do that it looks like there is
something wrong with your methodology.

That being said, it would be less suspicious if you only need to
reinitialize some specific part of your program. In this case you can
make a separate function for these initializations, and call it both
from setup() and, when needed, from loop():

void init_foo() {
    // ...
}

void setup() {
    init_foo();
    // other initializations...
}

void loop() {
    if (some_condition) {
        init_foo();  // reinitialize foo
        return;
    }
    // etc.
}