There are not that many programs designed to do that and most engines are intended to find the best move and have the highest rating. And it would also depend on how consistent you are and how often you make mistakes.
Fine grain difficulty is hard to do as there are way too many variables in the person playing. And controlling the program is also not trivial to achieve that goal.
Depending on your weaknesses, and the programs shortcomings, any program may or may not be too hard/easy for you. And your inconsistency may make that program change from day to day.
Your best chance is to look for one with some range of difficulty that occasionally makes weak moves on purpose; or else find a program that has a finer range of how far ahead the program will look. That would change the amount of time the program would need to maintain its set level which could become too long for you to accept.
I know of at least one program that does make mistakes on purpose. There may well be some more. But if they are easy enough for you to win 40-60% of the time is a question.
Winning at the rate you would prefer would mean that the 'rating' of both you and the program were about the same. Hopefully you would learn to play better and then be winning so much that you think the program is too easy.
So would that program still have enough control over its difficulty for you? You might need yet another program to find the sweet spot you desire.
Best would be for you to try improving your ability and to play in Quads of players who have similar ratings. Pairings are made based on the people with the closest ratings so you should have good matches like you want. Whether you win too much or too little depends on your variability as well as theirs.
Another good bet is for you to play online and get a rating. Then you could find players or events that fit your skill level and get the type of win/loss ratio that you think is good for your goals.
If you want a program then there is a long list of them here
Check reviews and see if any of them do what you want to do.
Alternatively you could try an engine that gives you control over how it works and customize it yourself.