1 of 7

C (gcc), 131 bytes

p(v){v&&printf("%d",v);puts("");}L(a,v,A,s){srand(clock());s=1000;for(s=5;--s;)A=rand()%(v+1),p(a>44&a<60&s<3|a>59?v-=A,A:0);p(v);}

Try it online!

Degolfed:

p(v){ // Printing helper function
    v&&printf("%d",v); //Print v if non-zero
    puts("");}
L(a,v,A,s){ // Called as L(minutes)
    srand(clock()); s=1000; // Init rng and lava
    for(s=5;--s;) // Loop through the layers
         A=rand()%(v+1), // Generate random number in [0, v]
         //Unfortunately, 1000 is too large for clock() to distribute nicely
         p( // Print
            a>44&a<60&s<3|a>59? // Determine whether something should be printed.
                v-=A,A // Deduct the random number from v, then return it.
                :0);
    p(v);} // Print the remainder on the last line