# [C (gcc)], <s>131</s> <s>116</s> <s>90</s> 89 bytes

<!-- language-all: lang-c -->

    L(l,a,v,A){for(A=5,v=1000;A;v-=a)printf("%d\n"+!a*2,a=--A?(l>59|A<3&l>44)*rand()%-~v:v);}

[Try it online!][TIO-jlyzxfvv]

[C (gcc)]: https://gcc.gnu.org/
[TIO-jlyzxfvv]: https://tio.run/##VY7NUoMwFIX3PMW1Dk4CiZMqOLYQHPbtE6iLGH6amgaH0rio@OhG0uqiuzPfPd@dI2krpbtWRupDVUO@HyrV3W6K4AJp9XbJBrWrJ@JWSBNBLCnxsel6VPKUWD5njGVlZikX@KNXZmjQLKxezCy@EtEdEZzS8gnpIl18lfn9jS6SBEe9MBXCIf22S4uz0U0a7IQyyAfRt5LIjeghiqZsMRwDgP3JkbqT7wjjbCJ@g@8rzjKIY5V7MTu3Afxly8XQKeSfPKvXkwTwP3KtzGGoIayW01gC27/zCp3TGIzOzVOXJC5JXbpwD8w9sh/ZaNHuHf38BQ "C (gcc) – Try It Online"

**Update**: Fixed a bug in the original. Fused in the helper function, reducing an additional 15 bytes.

**Update 2**: -25 bytes thanks to ErikF.

## Degolf

    L(l,a,v,A){
        for(A=5,v=1000;A;v-=a)
            printf("%d\n"+!a*2, // No clue how this works anymore, but it'll advance the pointer 
                                // to the string constant when a number shouldn't be printed.
            a=--A? // Is bottom layer?
            (l>59|A<3&l>44)*rand()%-~v // Random integer to print in [0, 1000]
            :v) // If bottom layer, return remaining volume;}