Our developers found that insufficient randomness was used while generating the 12-word Bitcoin seed. As we continue to strive to improve the platform and security, BTC wallets generated from version 4.1.7 onwards use a 24-word seed as well as we replaced random bytes generation by platform specific generator further enhancing the security of the wallets.
and then a bit further down the thread:
The Dart API says:
Random class
A generator of random bool, int, or double values.
The default implementation supplies a stream of pseudo-random bits that are not suitable for cryptographic purposes.
Use the Random.secure constructor for cryptographic purposes. (NOTE: emphasis added)
Constructors
Random([int? seed])
Creates a random number generator. [...]
Random.secure()
Creates a cryptographically secure random number generator. [...]
Looking at the Cake Wallet github code that was linked... you can see if the randomBytes method is called without the "secure" parameter being set to "true", it will default to "false" and you end up with the insecure Random() number generator instead of the Random.secure() cryptographically secure RNG! #yikes
And old note I found here:
http://commondatastorage.googleapis.com/dartlang-api-docs/13991/dart_math/Random.html indicates that the original insecure Random() uses "up to" 64 bits of seed
Implementation note: The default implementation uses up to 64-bits of seed.