Help on a luck equation?

I am really struggling with creating a versatile luck system to go along with my Weighted Chance System.
Basically what I want is high luck> high chances lower and low chances raise, low or negative luck > high chances raise and low chances decrease.

Anyone have an easy equation or way to implement this?
[This is the current way i am calculating it]

if luck>0 then
	luck = math.log(luck/basechance)
elseif luck<0 then
	luck = math.log((luck*-1)/basechance)
	luck = luck * -1
else
	luck = 0
end

chance += luck		

Have like a random local variable, its the chance of winning something, then with the luck gained, decrease the intensity of the change of winning, for example:

If my chances are 25% (math.random(1, 4)) and my luck is 4 then im gonna be winning in every single scenario.

The luck variable is just the variable that decreases the randomness to it.
(this is a theoretical solution)

i see, but there is no real 25% chance win, you will always get something from it. It is just down to what are the chances of that item (in my case, fish.)

You could simply add RNG to the base chance.

local luck = 15

function onDoThing()
    local baseChance = math.random(1,200)
    local minToPass = 75
    local result = baseChance + math.random(luck, 100)
    if result >= minToPass then
        print("Success!")
        print(`Score: {result}`)
        print(`Passing score: {minToPass} or higher`)
        return
    end
    print("Failure!")
    print(`Score: {result}`)
    print(`Passing score: {minToPass} or higher`)
end

But that’s also kinda the point of RNG systems, especially ones with luck. Spotify’s randomize playlist setting is designed to be as “fake random” as possible. It has special algorithms to detect whether or not a certain song is too similar to the last few played, and goes out of its way to look for something that’s different if the RNG falls on a same-y sounding song.

Sometimes true random doesn’t feel random at all, so you make it less random lol