Here you will find three scripts that will help you log in with your Duelingbook account, enter Solo Mode, run an arbitrary amount of test hands, and analyze the data you found empirically.
Originally, this was a pet project to determine if Duelingbook's shuffling system is actually random or is biased towards some card. It has been found, through these tools, that when the sample size is big enough (~10 000 data) the distribution is random, however with not-so-little sample size (2000) deviations over 3.5 sigmas can be observed. So no, the game is not rigged, but yes, you can get VERY unlucky.
In order to collect data sample, modify the scraping_script.py inserting your username and password, and eventually modify the total amount of shuffles you want, the frequency of printing the advancement and if you want the sixth card or not. By default the sixth card is turned on, because HAT format was what caused these scripts to be written. Join the HAT Alliance Discord for many free HAT tourneys, and a great community!
Once you typed your settings, run
python3 scraping_script.py
You will get some output, that we will refer as "OUTPUT.txt".
Mostly because of lag, if the amount of shuffles is high enough (~500 or more) then sometimes the bot will draw more cards and have sets of 7 or more cards in the opening hand. These have to be cleaned. In order to do so, run
python3 log_diagnostics.py OUTPUT.txt
It will create a file called OUTPUT_CLEANED.txt. This is guaranteed to be made by opening hands made by 6 (or 5, or whatever you set) cards. It will just discard the bad sets.
Once you have a good output file, run
python3 reading_script.py OUTPUT_CLEANED.txt MY_STATS.txt
This will produce the file "MY_STATS.txt", which will have the percentages of the openings of your cards, divided in 1-ofs, 2-ofs, and 3-ofs. Note that the script assumes the amount of a card in base of how much it is NOT opened. For very low sample sizes (<10) this will fail, and if the opening hand changes to 5 swap 65 with 68 and 75 with 80.
Enjoy your statistics! If you use these scripts to create content, please quote the programmer!