Versions >= 0.9

Download .zip RANDI2 Demo Documentation View on GitHub


RANDI2 is a Web Based application for convenient and state-of-the-art randomization within clinical trials. It supports many randomization algorithms, free configurable patient properties, stratification and definition of inclusion criteria. Furthermore it enables easy management of multi-center trials with an easy to handle user management.


"The randomization process is pivotal for clinical trials with more than one treatment arm. Whenever new therapies have to be compared with standard treatments or even with another experimental treatment, it should happen under the same boundary conditions. Chance is described in (Kendall 2003) as a random error appearing to cause an association between an intervention and an outcome. The most important design strategy to minimize such random errors is to have a large sample size, but in most cases it is a matter of ethics to minimize the sample size. Thus, it should be stipulated that a clinical trial comparison with two or more treatment arms is ideally randomized. As it is stressed in (Rosenberger et al. 2002) randomization in a clinical trial is an issue in each of the three components design, conduct, and analysis. And we will concentrate in this paper on design and the execution process. In the randomization process patients are allocated randomly to one of those treatment arms. In practice it is often the case that there is the need to adapt the randomization process to the study design and the patient recruitment. The open source project RANDI2 provides a platform for the electronic randomization and possesses a much more reliable method than conventional telephone and fax procedures. It is flexible in use and can be customized to the demands of the study. However, other existing electronic systems are sometimes inflexible and not freely available. Thus, the development of RANDI2 was started."
Schrimpf D, Plotnicki L, Pilz L Web-based open source application for the randomization process in clinical trials: RANDI2; J Clin Pharm


The project RANDI2 was born as a practical course for the Medical Informatics students at the Heilbronn University in 2006. The aim was to develop a new web based, randomization software for the German Cancer Research Center. After one year of work a prototype of the RANDI2 system has been realized and its functionality was indeed very satisfying. This led to the decision, to continue the project under the wings of the German Cancer Research Center and to make it open source. By this time the developers decided also to change the technology stack (from JavaServerPages, Model-2-Architecture to Ajax enabled JavaServerFaces combined with Spring and Hibernate on the server side) and basically to rewrite the whole software - the RANDI2 project, as we know it, was born.


Since then the project‘s main goal is to deliver a state-of-the art, open source randomization solution which will be not only well-known but also regularly used by the RCT's conducting institutions world-wide. To accomplish this ambitious goal the RANDI2 team established an expert group in Heidelberg for an ongoing discussion about the system, randomization algorithms, new features and other improvements with scientists working in different institutions around the campus. Last not least: the development of RANDI2 is very technology-driven and assures the use of modern frameworks and techniques.


RANDI2 can be run in any JEE application server of your choice and with almost any common database management system. The current version supports MySQL and PostgreSQL out of the box but the configuration for any other system is very easy.

The current version implements following randomization algorithms:

Complete randomization

A simple algorithm where the chance of each treatment arm is exactly the same. This approach guarantees that the allocation process is fully random.

Truncated randomization

Helpful if the exact patients' amount in the treatment arms is well defined and needs to be reached.

Block randomization

A good algorithm for small amount of patients. Works with permuted blocks of specified or variable block size.

Wei’s urn model randomization

Algorithm which uses the "balls-in-a-urn" principle. Stratification of these algorithms, if reasonable, can be applied.

With Block and Wei's urn randomization the user can defined any amount of the desired strata groups using the configured patient properties.


During the trial configuration process, the user can specify the important subject's properties which will entered by the investigator before the randomization process and stored in the system. RANDI2 supports currently following types of properties:

  • Integer number - e.g. for age or height in cm
  • Floating point number - e.g. for laboratory values
  • Ordinal - a well defined set of characteristics (e.g.: tumor status, gender)
  • Calendar Date - a calendar date (e.g.: day of birth)
  • Free Text - any possible string The defined trial subject's properties can be used as stratification factors or inclusion/exclusion criteria*.

It is possible to add for each property an inclusion constraint, if the check fails it is not possible to randomize the patient.


The system is currently shipped with support for the German and English language. Due to the fully internationalized backend, adding another localization is a simple process which doesn't involve any programming skills at all.


Each RANDI2 user is characterized by a set of rights and trial specific roles which defines exactly what the user can do and see in the system. The set of the predefined roles is inspired by the Good Clinical Practice.

Following trial unspecific roles are available:

  • Administrator - the system administrator. Manages the trial sites and the users. No access to the trials or the randomization process.
  • The right to create new trials.

Following trial specific roles are available:

  • Principal Investigator / Trial Administrator - responsible for the management of the study (add/remove user of the trial, change trial characteristics or the trial status)
  • Investigator - can randomize patients and view his own patients.
  • Statistician - has access to the trial data for the auditing and analysis purposes.
  • Monitor - has access to the trial data to audit the randomization process.


Each user action made in the system from signing-in, to the randomization itself is logged and stored in the RANDI2 database.


The randomization data generated by the system can be exported as a plain CSV file or in the MS Excel format. Furthermore a quick overview about randomization status can be visualized in form of a variety of charts.

  • Scala
  • ScalaQuery
  • Liquibase
  • liftweb