Hello everyone. In the past, I did write and share a Python script that was simulating attacks and gave a simulation report. I have rewritten the simulator in Rust and added a user interface for ease of use. It is quite simple to use. You first need to create a weapon that the character will be holding. You can override the threat range and critical multiplier of the weapon in order to simulate bonuses such as weapon master threat range increase, etc. After the weapon is created, you can create a new character. You need to set some stats, such as STR, base APR, extra APR, some features (basically feats such as blind fight, dual-wield), etc. After creating the character, you can now simulate it against a target AC range. The more rounds simulated, the more accurate results are going to be achieved. My recommendation is always to simulate 500000 rounds.
This simulator is available on Windows and Linux. You can download it from here. It's also open source, which you can be found here.
(The simulated characters in the above picture are just random value simulations in order to demonstrate.)