Available inall subroutines.

Returns a random integer value between from and to, inclusive.

This does not use secure random numbers and should not be used for cryptographic purposes.

Even though integer values in VCL are typically 64-bit signed integers, this VCL function only accepts from, to, and seed, which are signed 32-bit integers. The range of valid values for from, to, and seed is therefore −(231) to 231 − 1 inclusive. That is, the minimum and maximum values are -2147483648 and 2147483647 respectively, or -0x80000000 and 0x7FFFFFFF in hexadecimal.

This function is not prefixed with the std. namespace.


if (randomint(0, 99) < 5) {
set req.http.X-ABTest = "A";
} else {
set req.http.X-ABTest = "B";
if (randomint(-1, 0) == -1) {
set req.http.X-ABTest = "A";
} else {
set req.http.X-ABTest = "B";

Try it out

randomint is used in the following code examples. Examples apply VCL to real-world use cases and can be deployed as they are, or adapted for your own service. See the full list of code examples for more inspiration.

Click RUN on a sample below to provision a Fastly service, execute the code on Fastly, and see how the function behaves.

Random integers

Generate random whole numbers in a range.

Set Google Analytics _ga cookie

Due to ITP 2.1 restrictions, cookies set in JavaScript may be limited to a 7-day TTL. Set your Google Analytics cookie on the edge to avoid this.

User contributed notes


Do you see an error in this page? Do have an interesting use case, example or edge case people should know about? Share your knowledge and help people who are reading this page! (Comments are moderated; for support, please contact support@fastly.com)