Return rows or records in a table with random order in SQLite

Let's take a simple table for this:

CREATE TABLE user (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT
);
INSERT INTO user (name) VALUES ('abc'), ('def'), ('ghi'), ('jkl'), ('mno');
SELECT * FROM user ORDER BY random();

This will return the rows in a random order

You can limit the number of rows

SELECT * FROM user ORDER BY random() LIMIT 5;

We can even randomly shuffle a subset of rows with limit and where clauses

SELECT * FROM user
WHERE id BETWEEN 1 and 10 ORDER BY random() limit 5;

This is cool if you want to get certain subset of samples but in no strict order.