//
// Created by sebastian on 08.02.26.
//

#ifndef RANDOM_H
#define RANDOM_H
#include <random>


class Random {
public:
    Random() : gen(std::random_device{}()) {};

    // Float zwischen min und max
    float randomFloat(float min, float max) {
        std::uniform_real_distribution<float> dist(min, max);
        return dist(gen);
    }

    // Int zwischen min und max (inklusive)
    int randomInt(int min, int max) {
        std::uniform_int_distribution<int> dist(min, max);
        return dist(gen);
    }

    // Bool mit Wahrscheinlichkeit p
    bool randomBool(float probability = 0.5f) {
        std::bernoulli_distribution dist(probability);
        return dist(gen);
    }

private:
    std::mt19937 gen;
};



#endif //RANDOM_H
