Index: trunk/ippTools/src/chiptool.c
===================================================================
--- trunk/ippTools/src/chiptool.c	(revision 37410)
+++ trunk/ippTools/src/chiptool.c	(revision 40534)
@@ -279,4 +279,6 @@
     PXOPT_LOOKUP_STR(note, config->args, "-set_note", false, false);
 
+    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
+
     // default
     PXOPT_LOOKUP_BOOL(unique, config->args, "-unique", false);
@@ -284,4 +286,6 @@
     PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
     
+    PXOPT_LOOKUP_BOOL(randomOrder, config->args, "-random", false);
+
     // find the exp_id of all the exposures that we want to queue up.
     psString query = pxDataGet("chiptool_find_rawexp.sql");
@@ -304,4 +308,16 @@
     }
     
+    // treat limit == 0 as "no limit"
+    if (randomOrder) {
+        psStringAppend(&query, " %s", "ORDER BY RAND()");
+    }
+
+    // treat limit == 0 as "no limit"
+    if (limit) {
+        psString limitString = psDBGenerateLimitSQL(limit);
+        psStringAppend(&query, " %s", limitString);
+        psFree(limitString);
+    }
+
     if (!p_psDBRunQueryF(config->dbh, query, labelHook ? labelHook : "")) {
         psError(PS_ERR_UNKNOWN, false, "database error");
