# Weak random number generator in RDM RDMDW

**URL:** <https://oscat.discourse.group/t/weak-random-number-generator-in-rdm-rdmdw/2099>\
**Category:** oscat.lib fuer TwinCAT/CoDeSys\
**Created:** [22. Juli 2016 um 10:00 UTC](https://oscat.discourse.group/t/weak-random-number-generator-in-rdm-rdmdw/2099 "2016-07-22T10:00:46Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![vladimirsitnikov](https://yyz2.discourse-cdn.com/free1/user_avatar/oscat.discourse.group/vladimirsitnikov/32/18_2.png) [@vladimirsitnikov](https://oscat.discourse.group/u/vladimirsitnikov)\
**Post date:** [22. Juli 2016 um 10:00 UTC](https://oscat.discourse.group/t/weak-random-number-generator-in-rdm-rdmdw/2099/1 "2016-07-22T10:00:46Z")

</div>

Hi,

RDM, RDM2, RDMDW seems to be using weak random number generators. The generators are using floating point arithmetics (including divisions), thus they are somewhat slow.

What do you think if the random number generator was replaced with some well-known one?  
For instance: xoroshiro128+ (see [http://xoroshiro.di.unimi.it/](http://xoroshiro.di.unimi.it/))

xoroshiro128+ requires just 4 DWORDs for internal state, and it uses just shifts, additions and xors, so it should be way faster than current OSCAT generators.

Here’s a C code: [http://xoroshiro.di.unimi.it/xoroshiro128plus.c](http://xoroshiro.di.unimi.it/xoroshiro128plus.c) (it uses several 64-bit shifts/xors and one 64-bit addition, however all of that can be easily converted to 32bit DWORDs)

By the way: are OSCAT sources somewhere at github?
